gpt4 book ai didi

c++ - 尝试存储 map 插入的返回值时出错

转载 作者:行者123 更新时间:2023-11-28 00:28:08 25 4
gpt4 key购买 nike

<分区>

map<int, set<int> > map_set;
srand(time(0));
for (int i = 0; i < rand()%50 + 20; ++i) {
int k = rand()%10, v = rand()%10;
pair<map<int, set<int> >::iterator, bool> ret = map_set[k].insert(v);
if (!ret.second)
cout << "Attempted to insert [" << k << ":" << v << "], but entry already existed [" << ret.first->first << ":" << ret.first->second << "]" << endl;
}

我在定义 ret 的行中收到以下错误:

[Error] conversion from 'std::pair<std::_Rb_tree_const_iterator<int>, bool>' to non-scalar type 'std::pair<std::_Rb_tree_iterator<std::pair<const int, std::set<int> > >, bool>' requested

看起来编译器告诉我我没有声明 ret作为 pair<map<int, set<int> >::iterator, bool>但作为其他一些我无法弄清楚的事情。

我不知道哪里出了问题,因为用不同的方式做同样的事情是可行的:

for (int i = 0; i < rand()%50 + 20; ++i) 
if (!(map_set[rand()%10].insert(rand()%10)).second)
cout << "Failed attempt to insert value for a new key: it already existed" << endl;

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