1. pair
initialize:
pair<int, int> p1 = {6, 8};
pair<string, int> p2("tom", 24);
p1.first = 10;
cout << p1.first << " " << p1.second; //10 8
2. map
1):map则是一个容器,里面存储的是 pair对象。但存储的方式与vector<pair>这种 连续存储有所不同, map采用的是 二叉排序树存储pair,一般是红黑树。
2):map使用下标访问时,如果 key不存在,那么会在map 中自动添加一个新的pair,value为默认值。
性能分析:由于map采用二叉排序树(红黑树),树的高度不超过 [logN] +1。所以 插入和查询时间复杂度 为 O(lgN);
注意:使用insert插入map元素时,如果失败,则不会更新原来的值。
map<string, int> m;
m["beijing"] = 2000;
m["shanghai"] = 1500;
reference: https://www.cnblogs.com/xfxu/p/3992420.html