1.map基本概念
简介:
- map中所有元素都是pair
- pair中的第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
- 所有元素都会根据元素的键值自动排序
本质:
- map/multimap属于关联式容器,底层结构是用二叉树实现
优点:
- 可以根据key值快速找到value值
map和multimap的区别
- map不允许容器中有重复key元素
- multimap允许有重复key元素
2、map构造和赋值
函数原型:
- map<T1,T2> mp;map默认构造函数
- map(const map &mp);拷贝构造函数
- map& operator=(const map &mp);重载等号运算符
#include<map>
using namespace std;
void printmap(map<int, int> &mp)
{
for (map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
{
cout << (*it).first << " " << it->second << endl;
}
cout << endl;
}
void test01()
{
map<int, int> m;
m.insert(pair<int, int>(1, 10));
m.insert(pair<int, int>(2, 20));
m.insert(pair<int, int>(3, 25));
m.insert(pair<int, int>(4, 34));
m.insert(pair<int, int>(5, 23));
printmap(m);
map<int, int> m2(m);
printmap(m2);
map<int, int> m3;
m3 = m2;
printmap(m3);
}
int main()
{
test01();
system("pause");
return 0;
}
2、map大小和交换
函数原型:
- size();元素数目
- empty();是否为空
- sawp(mp);两个map交换元素
#include<map>
using namespace std;
void printmap(map<int, int> &mp)
{
for (map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
{
cout << (*it).first << " " << it->second << endl;
}
cout << endl;
}
void test01()
{
map<int, int> m;
m.insert(pair<int, int>(1, 10));
m.insert(pair<int, int>(2, 20));
m.insert(pair<int, int>(3, 25));