2021年11月17日 C++STL map

map

map基本概念

简介:

map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,

第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 


优点: 可以根据key值快速找到value值


map和multimap区别:

map不允许容器中有重复key值元素

multimap允许容器中有重复key值元素

map的创建

构造:
map<T1, T2> mp;  "map默认构造函数:"
map(const map &mp);  "拷贝构造函数"

赋值:
map& operator=(const map &mp);  "重载等号操作符"

map的大小和交换

size();  "返回容器中元素的数目"

empty();  "判断容器是否为空"

swap(st); "交换两个集合容器"

map的删除和插入

insert(elem);  "在容器中插入元素。" 
m.insert(pair<int, int>(1, 10));

clear();  "清除所有元素"

erase(pos);  "删除pos迭代器所指的元素,返回下一个元素的迭代器。"

erase(beg, end);  "删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。"

erase(key);  "删除容器中值为key的元素。"


"第一种插入方式"
m.insert(pair<int, int>(1, 10));

"第二种插入方式"
m.insert(make_pair(2, 20));

"第三种插入方式"
m[4] = 40;

"清空"
m.erase(m.begin(),m.end());
m.clear();

map的查找和统计 

find(key); 
"查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();"

count(key); "统计key的元素个数(map只会返回0或1,这点和set一样)"

map改变排序的方式(这点和set差不多,需要一个仿函数作参数来实现)

 

 

 

 

Guess you like

Origin blog.csdn.net/LEewhITe2003/article/details/121374264