gpt4 book ai didi

c++ - std::map> 赋值失败

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:12 25 4
gpt4 key购买 nike

基本上我有(州,州代码)对,它们是国家的子集[美国] -> [VT] -> 32

所以我正在使用 std::map<tstring<std::map<tstring, unsigned int>>但是我在分配州代码时遇到了问题

for(std::map<tstring, std::map<tstring, unsigned int>>::const_iterator it = countrylist.begin(); it != countrylist.end(); ++it) 
{
foundCountry = !it->first.compare(_T("USA")); //find USA
if(foundCountry) it->second[_T("MN")] = 5; //Assignment fails
}

error C2678: binary '[' : no operator found which takes a left-hand operand of type 'const std::map<_Kty,_Ty>'

最佳答案

std::map 上的 operator[] 是非常量,因为如果条目不存在,它会创建条目。所以你不能以这种方式使用 const_iterator。您可以在 const 映射上使用 find(),但这仍然不允许您修改它们的值。

Smashery 是对的,考虑到您有 map ,您正在以一种奇怪的方式进行第一次查找。既然你明显在修改这个东西,这有什么问题?

countryList[_T("USA")][_T("MN")] = 5;

关于c++ - std::map<tstring<std::map<tstring, unsigned int>> 赋值失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/783864/

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