栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ STL整理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ STL整理

记录刷题时常用STL的性质:
unordered_set,multiset,set插入元素:
如setrecord;
record.insert(1);
record.insert(3);
record.insert(2);
三个容器插入都用insert,区别在于遍历的时候:for(auto e:set)cout< 由于multiset,set底层通过红黑树实现,会对里面元素进行排序,而unordered_set底层通过哈希表实现
因此unordered_set遍历时与插入顺序相反,为231(可能是插入的时候从指向begin迭代器往前插?)
而multiset,set会将其排序(升序),为123
而multiset与set的区别是如果再插入个1,遍历multiset时就会是1123,而set仍然是123,因为set有去重特性,而multiset允许重复

unordered_map,multimap,map与其的区别在于:
1.
multimap,map只能通过insert(),如:
multimaprecord;
record.insert({3,2});
unordered_map,map插入时除了insert(),还通过[],如
maprecord;
record[1]++;
或者maprecord;
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,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号