小编bas*_*r_p的帖子

迭代c ++ map时出现奇怪的行为

我有以下程序,可以找到数字的频率.

map<int,int> mp;
vector<int> x(4);
x[0] = x[2] = x[3] = 6;
x[1] = 8;

for(int i=0;i<x.size();++i)
    mp[x[i]]++;

cout<<"size:"<<mp.size()<<endl; //Prints 2 as expected

for(int i=0;i<mp.size();++i) //iterates from 0->8 inclusive
    cout<<i<<":"<<mp[i]<<endl;
Run Code Online (Sandbox Code Playgroud)

输出如下:

size:2
0:0
1:0
2:0
3:0
4:0
5:0
6:3
7:0
8:1
Run Code Online (Sandbox Code Playgroud)

为什么迭代次数超过9次?我也尝试在插入元素时使用insert而不是[]运算符,但结果是一样的.我还使用迭代器迭代地图进行测试.

c++ size dictionary loops

3
推荐指数
1
解决办法
146
查看次数

标签 统计

c++ ×1

dictionary ×1

loops ×1

size ×1