C++ 之 map和unorder_map

map的默认值问题

有默认值,在第一次访问某个key值元素时,它就被插入进map,并且初始化为0;

用erase()可以取消映射,也就是删除这个key值元素

map的构造函数

map<string , int >mapstring;

map添加数据

maplive.insert(pair<int,string>(102,"aclive"));

map中元素的查找

find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。       

map<int ,string >::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;

map中元素的删除

maplive.erase(l_it);

Map中的swap不是一个容器中的元素交换,而是两个容器交换;

Map中的元素是自动按key升序排序,所以不能对map用sort函数

begin()          返回指向map头部的迭代器
clear()         删除所有元素
count()          返回指定元素出现的次数
empty()          如果map为空则返回true
end()            返回指向map末尾的迭代器
equal_range()    返回特殊条目的迭代器对
erase()          删除一个元素
find()           查找一个元素
get_allocator()  返回map的配置器
insert()         插入元素
key_comp()       返回比较元素key的函数
lower_bound()    返回键值>=给定元素的第一个位置
max_size()       返回可以容纳的最大元素个数
rbegin()         返回一个指向map尾部的逆向迭代器
rend()           返回一个指向map头部的逆向迭代器
size()           返回map中元素的个数
swap()            交换两个map
upper_bound()     返回键值>给定元素的第一个位置
value_comp()      返回比较元素value的函数

猜你喜欢

转载自www.cnblogs.com/sialianzi/p/11425813.html