记录刷题时常用STL的性质:
unordered_set,multiset,set插入元素:
如setrecord;
record.insert(1);
record.insert(3);
record.insert(2);
三个容器插入都用insert,区别在于遍历的时候:for(auto e:set)cout<
因此unordered_set遍历时与插入顺序相反,为231(可能是插入的时候从指向begin迭代器往前插?)
而multiset,set会将其排序(升序),为123
而multiset与set的区别是如果再插入个1,遍历multiset时就会是1123,而set仍然是123,因为set有去重特性,而multiset允许重复
unordered_map,multimap,map与其的区别在于:
1.
multimap,map只能通过insert(),如:
multimap
record.insert({3,2});
unordered_map,map插入时除了insert(),还通过[],如
map
record[1]++;
或者map
record[1]=‘a’;
2.在用auto遍历时,如:
for(auto e:record)得到的e为pair类型,不能直接cout,(重载<<之后可以),要通过e.first来访问key,e.second来访问value
3.map与multimap的升序排列是按照key来排列
int test1[3];
multisettest2;
test2.insert(1);
test2.insert(3);
test2.insert(2);
multimaptest3;
test3.insert({1,1});
test3.insert({3,1});
test3.insert({2,1});
cout<
一个整型4个字节,所以cout< set48,一个e占16,



