STL专栏
文章平均质量分 78
介绍STL容器知识点以及相关面试题分享
X.Dragon
前PLA队员 在校大学生 C+方向,主修C+、Linux、计算机网络、网络编程、MySQL,分享学习记录,期待大家一起交流和学习...
展开
-
【STL】List容器介绍+相关练习题详细版本
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。原创 2024-03-19 22:35:34 · 786 阅读 · 0 评论 -
【STL容器】Set常规使用介绍补充
在 std::set 中,元素的值决定了元素在集合中的位置,集合中的元素是按照键值进行有序排列的。1.查找和去重:由于 std::set 中的元素是唯一的且有序的,因此非常适合用于需要查找和去重的场景。元素的顺序不可更改:std::set 中元素的顺序是根据键值决定的,并且在插入元素时会自动进行排序。总之,std::set 之所以不允许修改元素,是为了保证集合中元素的有序性和唯一性,以及保持集合内部数据结构的稳定性和性能。2.唯一性:std::set 中的元素是唯一的,即集合中不允许重复的元素存在。原创 2024-03-15 14:34:23 · 518 阅读 · 0 评论 -
【STL容器】Map使用介绍补充说明
map中的的元素是键值对map中的key是唯一的,并且不能修改默认按照小于的方式对key进行比较map中的元素如果用迭代器去遍历,可以得到一个有序的序列map的底层为平衡搜索树(红黑树),查找效率比较高支持[]操作符,operator[]中实际进行插入查找细节拓展:链接:C++中的map用法详解。原创 2024-03-15 14:31:52 · 478 阅读 · 0 评论 -
【STL】String浅拷贝问题
就是只是进行简单的指针拷贝,并没有进行值的拷贝,导致两个指针指向同一块内存空间,那么当代码走出作用域的时候,就会调用析构函数,导致同一块内存被释放两次,后面一次是失败的,出现野指针问题。来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。在编写string实现的时候没有实现strinig的拷贝构造,那么在使用的时候编译器就会使用默认的拷贝构造函数来处理,就出现了。如果一个类中涉及到资源的管理,其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出。原创 2024-03-06 14:31:41 · 360 阅读 · 1 评论