C++ 多重映射错误(键类型为std::string)
我在使用multimap时遇到了一些问题。我将展示代码并描述问题:C++ 多重映射错误(键类型为std::string),c++,multimap,C++,Multimap,我在使用multimap时遇到了一些问题。我将展示代码并描述问题: #include <string> ... multimap<std::string, pinDelayElement> arcList pinDelayElement pde; std:string mystring = "test" arcList[mystring] = pde; #包括 ... 多重映射弧表 单元素偏微分方程; std:strin
#include <string>
...
multimap<std::string, pinDelayElement> arcList
pinDelayElement pde;
std:string mystring = "test"
arcList[mystring] = pde;
#包括
...
多重映射弧表
单元素偏微分方程;
std:string mystring=“test”
arcList[mystring]=pde;
但是,当我编译时,最后一行给出了以下错误:
错误C2676:二进制“[”:“std::multimap”未定义此运算符或到预定义运算符可接受的类型的转换
具有
[
_Kty=std::string,
_Ty=Psdfwr::pinDelayElement
]
有人知道我可能做错了什么吗?那是因为没有
操作符[]
。请尝试使用该方法。下面的代码是如何正确执行的示例
操作符[]
,因为从中提取元素没有意义——每个索引都有多个值multimap::value\u type
#包括
#包括
无效测试()
{
typedef std::多重映射;
地图;
插入(map::value_type(“test”,1));
}
ok,我以前用std::string mystring=“test”arcList[mystring]尝试过它(只是又尝试了一次)=pde;
它会给我同样的错误,因此,更改它并不能解决问题it@CameronR:然后相应地更新您的代码和编译器错误。啊,这是有道理的。我在使用map时遇到了类似的问题,这就是为什么这让我感到困惑的原因。我想这是有道理的,因为对于一个多重映射来说,仅使用键进行索引并不是那么容易。谢谢!非常感谢。是的,在读了胡安科潘扎的评论后,我突然意识到,按照索引的方式进行提取是没有意义的
#include <string>
#include <map>
void test()
{
typedef std::multimap<std::string, int> Map;
Map map;
map.insert(Map::value_type("test", 1));
}