gpt4 book ai didi

c++ - map 插入中的参数不匹配错误

转载 作者:行者123 更新时间:2023-11-30 02:30:45 32 4
gpt4 key购买 nike

我使用 Java 多年,但还是 C++ 的新手。最近我需要做一个 C++ 项目,但是在使用 C++ 时遇到了一些令人不快的问题,其中之一就是 std:map

我正在尝试将键值对插入映射函数。

map[key]=valuemap.emplace(key,value) 工作正常,但 map.insert 给了我 [compilation错误]( error ),我完全迷路了。有人可以帮忙吗?

class mystructure{
private:
int value;
public:
mystructure(int v){
value=v;
}
void print(){
std::cout<<value<<std::endl;
}
std::string get_Value(){
return std::to_string(value);
}
};

int main(void) {

std::map<std::string, mystructure> mymap;
std::vector<mystructure> v = std::vector<mystructure>();
v.push_back(*(new mystructure(17)));
v.push_back(*(new mystructure(12)));
v.push_back(*(new mystructure(23)));
for (int i=0;i<v.size();i++) {
mystructure temp=v.at(i);
mymap.insert(temp.get_Value(),temp);//compilation error
}
return 0;
}

最佳答案

因为 std::map::insert 接受 std::map::value_type (即 std::pair<const Key, T> )作为其参数。

你可以使用:

mymap.insert(std::pair<const std::string, mystructure>(temp.get_Value(), temp));

mymap.insert(std::make_pair(temp.get_Value(), temp));

mymap.insert({temp.get_Value(), temp});

LIVE

关于c++ - map 插入中的参数不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288408/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com