【C++ 学习笔记】:STLmap

查找

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中插入的是键值对,查找一个map可以有两种方法,一种可以用重载的符号[]通过键来找,但是如果那个键值map里没有就会加一个新的键在里面,值就用默认的,如int型的就用0:

int b = map_test[3];


结果: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;

 

修改重复键值

与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;

 

原文地址:https://www.cnblogs.com/xiaoka/p/2102461.html