简介:
-
map中所有元素都是pair
-
pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
-
所有元素都会根据元素的键值自动排序
本质:
-
map/multimap属于关联式容器,底层结构是用二叉树实现。
优点:
-
可以根据key值快速找到value值
map和multimap区别:
-
map不允许容器中有重复key值元素
-
multimap允许容器中有重复key值元素
map构造和赋值
map<T1,T2> mp; //默认构造函数
map(const map &mp); //拷贝构造函数
map& operator=(const map&mp); //重载等号赋值运算符
void PrintMap(map<int, int>& a)
{
for (map<int, int>::iterator begin = a.begin(); begin != a.end(); begin++)
{
cout << begin->first << begin->second << endl;
}
}
void test02()
{
map<int, int>m1;
m1.insert(pair<int, int>(1, 10));
m1.insert(pair<int, int>(2, 20));
m1.insert(pair<int, int>(3, 30));
PrintMap(m1);
map<int, int>m2(m1);
map<int, int>m3;
m3 = m1;
}
int main()
{
test02();
return 0;
}
map的插入和删除
insert(elem) ;需要成对插入才行
clear()
erase(pos) ;删除pos迭代器指向的元素
erase(beg,end)
erase(key) ;//删除值为key的元素
map大小和交换
size();返回元素数目
empty();判断是否为空
swap(mp);交换
find(key);//查找key是否存在,如果存在返回迭代器,不存在返回.end()
count(key); 统计key元素个数