我试图只使用自定义键和值类型向地图插入新项目:
struct Address {
bool operator<(const Address& a) const { return 1; }
};
struct Cell {};
std::map<Address, Cell> map;
map.insert(std::make_pair<Address, Cell>(Address(), Cell()));
G ++编译得很好,但我的IDE(CLion)抱怨插入方法的参数(用红色下划线标记为错误):参数类型不匹配:类&#39; std :: pair&lt; Address ,Cell&gt;&#39;与类&st; :: initializer_list&lt; std :: map&lt; main :: Address,main :: Cell&gt;&gt; :: value_types&gt;&#39; 不兼容。
为什么我收到此错误?我的代码有问题吗?或者它是IDE中的错误?
答案 0 :(得分:-2)
您可以使用std::vector代替std::map宽度std::pair。
要解决问题更改:
std::map<Address, Cell> map;
为:
std::vector<std::pair<Address, Cell> > map;
并包含矢量库
#include <vector>