虽然当我们遍历begin(), end()和cbegin(),cend()时,它们给我们相同的结果。但它们之间有什么区别呢?
#include<iostream>
#include<map>
using namespace std;
int main()
{
map<char,int>mp;
mp['a']=200;
mp['b'] = 100;
mp['c']=300;
for(auto it =mp.cbegin();it!=mp.cend();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
cout<<endl;
for(auto it =mp.begin();it!=mp.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
return 0;
}
mp.begin()->second = 42
would work,mp.cbegin()->second = 42
would not.c
is forconst
- Igor Tandetnik