#include<iostream>
#include<map>
using namespace std;
int main()
{
map<int, string> sample;
for (int i = 5; i > 0; i--)
sample[i] = 'i' + i;
map<int, string>::iterator i = sample.begin();
for (int j = 1; j <= 10; j++)
{
cout << sample[j] << endl;
}
for (; i != sample.end(); i++)
cout << i->first;
cout << "Size is :" << sample.size();
}
我运行此程序以了解有关std :: map的更多信息,即我将地图大小设置为10,请参阅下面的输出屏幕截图。
有人可以澄清为什么std :: map在无效循环显示功能中自动扩展。
答案 0 :(得分:4)
std::map::operator [key]
相当于(*((this->insert(make_pair(key, mapped_type()))).first)).second
,因此如果元素不存在,则插入默认值。
您必须使用at
或find
不在map
中插入元素,或使用迭代器。
答案 1 :(得分:1)