查找
map<int,int> map_test;
map_test.insert(pair<int,int>(1,2));
map_test.insert(pair<int,int>(1,3));
map_test.insert(pair<int,int>(2,2));
int a = map_test[1];
int b = map_test[3];
map<int,int>::iterator p = map_test.find(4);
if(p == map_test.end())
b =0;
int length = map_test.size();
map_test.insert(pair<int,int>(1,2));
map_test.insert(pair<int,int>(1,3));
map_test.insert(pair<int,int>(2,2));
int a = map_test[1];
int b = map_test[3];
map<int,int>::iterator p = map_test.find(4);
if(p == map_test.end())
b =0;
int length = map_test.size();
map中插入的是键值对,查找一个map可以有两种方法,一种可以用重载的符号[]通过键来找,但是如果那个键值map里没有就会加一个新的键在里面,值就用默认的,如int型的就用0:
int b = map_test[3];
结果:map_test={[1,2][2,2][3,0]}
结果:map_test={[1,2][2,2][3,0]}
另一种方法是通过方法find()通过键来寻找,这样就不会有上面的困扰:
map<int,int>::iterator p = map_test.find(4);
返回的是一个迭代器,要判断是否存在只需要判断返回的迭代器是否指向map的尾巴
if(p == map_test.end())
b =0;
b =0;
修改重复键值
与java的util中的容器不同,C++修改值只需要直接赋值即可。修改可以有两种方法: (!注意: 直接用插入相同键值的方法是不能修改值的)
map<int,int> map_test; map_test.insert(pair<int,int>(1,1)); //方法1 map_test[1] = 2; //方法2,使用游标 map<int,int>::iterator iter = map_test.find(1); iter->second = 3;