“我步入丛林,因为我希望生活得有意义,我希望活得深刻,汲取生命中所有的精华,把非生命的一切都击溃,以免让我在生命终结时,发现自己从来没有活过。”——死亡诗社的誓词。
本来都打算取消坚持日更的计划了,因为发觉最近几天的内容越来越敷衍了。但是真的到要放弃的那一刻又有点舍不得,刚好今天有想要总结的内容,罢了还是继续来吧。
C++分为顺序容器和关联容器;
顺序容器包括:
vector, string, deque, array, list, forward_list;
关联容器包括两类:
set, map
每类都分别有支持重复元素和不支持重复元素(以前缀multi区分)、有序和无序的类型(以前缀 unordered_区分),共八种。
分了类虽然可以让各自的使用场景精细化,但是相比于python相对简单的数据结构,要搞清楚C++的容器还是要费一点脑子。尤其是不同容器对应的增删查操作的函数名也不太一样很让人头疼。今天索性把它们放在一起对比一下,加深记忆:
容器名 | 增加元素 | 插入元素 | 去除 | 查找 | 修改/替换 |
---|---|---|---|---|---|
顺序容器 | push_back/push_front | insert/emplace | erase/clear | string支持find/rfind/find_first_of等等 | assign |
关联容器 | \ | insert/emplace | erase/clear | find/count/lower_bound/upper_bound/equal_range | |
特例 | forward_list不支持;array不支持 | array不支持 | array不支持 | 其余顺序容器可用algorithm头文件中的find函数 | array不支持 |
特例太多了,我头大了,先这样吧,over~