gpt4 book ai didi

c++ - 它无法将 C++ 映射结构编译为 map>

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:30 24 4
gpt4 key购买 nike

我有一个 C++ 代码,带有 STL 映射,第二个参数定义为一对

int keys[10] = {1, 1, 1, 2, 3, 4, 5, 7, 6, 6};
char s[5];
map< unsigned int, pair<string, int> > tmpMap;

for (int i=0; i<10; i++)
{
if (tmpMap.find(keys[i])==tmpMap.end())
{
sprintf(s, "%i", keys[i]);
tmpMap.insert(make_pair(keys[i], make_pair(s, 1)));
}
else tmpMap[keys[i]].second++;
}

for (map< unsigned int, pair<string, int> >::iterator it=tmpMap.begin(); it!=tmpMap.end(); ++it)
{
cout << (*it).first << " " << (*it).second << endl;
}

但是它编译失败,它说,没有匹配运算符<<。但是 (*it).first 和 (*it).second 只是 string 和 int,为什么它不起作用?

最佳答案

这不是真的,first是一个 unsigned int , 而 secondpair<string,int>因为映射的迭代器不会直接给你对,而是给你一对键,值。

我想你应该这样做

pair<string,int> pair = (*it).second;
cout << pair.first << " " << pair.second << endl;

关于c++ - 它无法将 C++ 映射结构编译为 map<A, pair<B, C>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10128520/

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