我自己的理解:c++的map类型的迭代器得到的是一个关于元素的引用,即pair,而且这个pair的关键字是const的,所以不能修改其值,我们只能修改value的值、
答案书的解释:解引用关联容器的迭代器,得到的是一个value_type的值得引用。因此对map而言,得到的是一个pair类型的引用,其first成员保存const关键字,second成员保存值。因此通过迭代器只能修改值,而不能修改关键字。
#include <string>
#include <iostream>
#include <list>
#include <vector>
#include <set>
#include <map>
using namespace std;
int main()
{
map<string,int> m1;
map<string,int>::iterator it=m1.begin();
it -> second = 12345;
return 0;
}
~
~
总结:
自己的理解和答案还是有点差距: