1.简介
- map中所有元素都是pair
- pair中第一个元素为key(键值),起到索引作用,第二个元素为value值(实值)
- 所有元素都会根据元素的键值自动排序
2.本质:map/multimap属于关联式容器,底层结构是二叉树实现
3.优点:可以根据key值快速找到value值
4.map/multimap的区别
- map不允许容器中有重复key值元素
- multimap允许容器中有重复key值元素
- multimap中没有重载operator[ ]功能
5.map构造和赋值
- 构造:(1)map<T1 , T2> mp; //map默认构造函数 (2)map( const map &mp); //拷贝构造函数
- 赋值: map &operator = (const map &mp); //重载等号操作符
#include<iostream> #include<map> using namespace std; void printmap(map<int, int>& m) { for (map<int, int>::iterator it = m.begin(); it != m.end(); it++) { cout << "key=" << it->first << " value=" << (*it).second << endl; } cout << endl; } void test1() { map<int, int> m; m.insert(pair<int, int>(1, 10)); m.insert(pair<int, int>(3, 30)); m.insert(pair<int, int>(4, 40)); m.insert(pair<int, int>(2, 20)); printmap(m); //会按照key进行排序输出 /* key=1 value=10 key=2 value=20 key=3 value=30 key=4 value=40 */ //拷贝构造 map<int, int>m2(m); printmap(m2); //赋值 map<int, int>m3; m3 = m2; printmap(m3); } int main() { test1(); return 0; }