gpt4 book ai didi

c++ - 交错 std::map 插入和迭代

转载 作者:搜寻专家 更新时间:2023-10-31 01:34:42 29 4
gpt4 key购买 nike

如果我像这样迭代 std::map:

typedef std::map<connection, connectionData> clist;
clist m_connections;

for (const auto itt : m_connections)
{
connectionData outerPlayerData = itt .second;
// Do stuff
}

在代码的某处,m_connections 不断被填充,这是否意味着迭代循环将永远运行?它在增长吗
或者它将在这个时间点运行 m_connections 的大小以及那个时间点的相关大小?

最佳答案

如果你在大于当前迭代位置的位置不断添加,它将永远迭代。元素不断添加,循环迭代考虑 map 的当前状态。

Demo

int main() {
// your code goes here
map<int, int> m;
m.insert(make_pair(10, 11));
int i = 0;
for(auto it : m){
cout << it.second << endl;
if(i++ == 0){
m.insert(make_pair(15, 12));
}
}
return 0;
}

输出为:

11
12

11

关于c++ - 交错 std::map 插入和迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38811472/

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