无法在Google上找到答案..
当我使用std :: string时,以下工作正常。
map <fxString, int> test;
test.insert(pair <fxString, int> ("Bla", 1));
test.insert(pair <fxString, int> ("Bla", 2));
test.insert(pair <fxString, int> ("Bla", 3));
cout << fxInt2String(test["Bla"]) << endl;
哪个应该输出1,而是输出0
当我遍历地图时,每个键值对都在那里,坐在彼此旁边嘲笑我。
fxString定义以下运算符: 运算符&gt; 运算符&lt; operator == operator!=
还有更多,我测试了它们。
格罗姆。
答案 0 :(得分:6)
“当我遍历地图时每个 键值对是“
那么,你的fxString::operator<
出了问题,因为如果密钥已经存在,insert
成员函数应该没有效果。您确定此运算符会模拟strict weak ordering吗?
假设运算符已损坏,test["Bla"]
可以在地图中添加另一个元素,默认值为0.
答案 1 :(得分:0)
这很好(正如你所说)
map <string, int> test;
test.insert(pair <string, int> ("Bla", 1));
test.insert(pair <string, int> ("Bla", 2));
test.insert(pair <string, int> ("Bla", 3));
cout << test["Bla"] << endl;
因此,fxInt2String
函数或运算符重载必定存在问题。
要获得进一步的帮助,您应该向我们提供相关功能的代码。