在 Visual Studio 中放置和插入unordered_map
Emplace and insert in unordered_map in Visual Studio?
我正在努力使用 VS2010 在 c++ 中做最基本的unordered_map:插入一些东西。
unordered_map<string, string> cats;
//cats.insert("Adam", "Streak");
//cats.emplace("Kyra", "Shadow");
我确定我犯了一个非常简单的错误,但我现在花了两个小时试图弄清楚它。 上面的两个注释行在取消注释时都会出错。
取消注释cats.insert("Adam", "Streak");
时,错误为:
错误1 错误 C2678:二进制"==":找不到采用类型为"const std::string"的左侧操作数的运算符(或者没有可接受的转换( C:\Program Files (x86(\Microsoft Visual Studio 10.0\VC\include\xfunctional
取消注释cats.emplace("Kyra", "Shadow");
时,错误为:
错误1 错误 C2780:"std::p air<_Ty1,_Ty2> std::_Hash<_Traits>::emplace(_Valty &&(":需要 1 个参数 - 提供 2 个参数
我很困惑,因为互联网上有几个使用这种确切语法的例子。 例如,cplusplus.com 这里。
我做错了什么?
这两个函数都接受std::pair<A,B>
make_pair
是建立配对的最简单方法。
cats.insert(std::make_pair("Adam", "Streak"));
cats.emplace(std::make_pair("Kyra", "Shadow"));
或
cats.insert(std::pair<std::string, std::string>("Adam", "Streak"));
http://ideone.com/43GqyB
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 在数字之间插入 + 或 - 符号以使其等于整数
- 在字符串中插入空格
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?