
STL
文章平均质量分 76
提高篇
白糖熊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++STL】迭代器
当我们对mutable iterator进行提领操作,获得的不应该是右值(rvalue),而应该是左值(lvalue),因为右值不允许赋值操作,左值才允许。任何一个打算和STL算法有完美搭配的class,都应该定义自己的value_type内嵌型别。Input_iterator :这种迭代器所指的对象,不允许外界改变,是只读的。左值,令它代表p所指之物的,是可能的,那么“传回一个地址”也一定可以。所谓value_type ,是指迭代器所指的对象的型别。如何设计出两者之间的良好的粘合剂,才是最大的问题。原创 2022-11-10 22:05:11 · 454 阅读 · 0 评论 -
【C++】map和set的使用
如果需要对关键码进行排序,则使用,map,不需要则也可以使用unordered_map。原创 2022-11-09 15:34:02 · 119 阅读 · 0 评论 -
【c++】deque和vector的区别,相关面试题
deque和vector的区别:原创 2022-11-08 22:03:23 · 510 阅读 · 0 评论 -
【C++】迭代器失效问题:
1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。2.当插入(push_back)一个元素后,如果需要扩容,先前的空间就会被析构,此时first,last,end操作返回的迭代器都会失效。3.当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的元素的迭代器也将全部失效。原创 2022-11-06 21:16:56 · 796 阅读 · 1 评论 -
【C++STL】vector的介绍和使用
是否是使用引用和const,取决于使用目的。容器中的数据是否需要修改,是内置类型还是设计类型,等等。for(;it3!it3 ++) //const修饰的是整个迭代器,修饰的是it3本身 it3++ error {//所以其指向的值可以变,但是其本身不能变 cout Value()原创 2022-11-06 16:44:22 · 504 阅读 · 0 评论 -
【C++STL】deque的结构和使用
deque是由一块一块的固定大小的连续空间构成(块与块之间是不连续的)。一旦有必要在deque的前端或者尾端增加新的空间,便配置一块固定大小的连续空间,串接在整个deque的头端或者尾端。deque 的最大任务,便是在这些分块的固定大小连续空间上,维护其整体连续的假象,并提供随机存取的接口(随机迭代器),代价则是迭代器架构较为复杂。deque 采用一块所谓的_M_map(不是STL的map容器)作为主控。原创 2022-11-08 16:04:13 · 778 阅读 · 0 评论 -
【C++STL】list的介绍 | vector和list的区别和使用场景
在平时使用时,不能谈论某个容器的优缺点,因为每种容器都有它适合的场景,只能说哪种容器在哪种场合更实用。vector底层实现是数组;list是双向链表。vector支持随机访问,list不支持。vector是顺序内存,list不是。vector在中间节点进行插入删除会导致内存拷贝,list不会。vector一次性分配好内存,不够时才进行2倍扩容(或1.5倍);list每次插入新节点都会进行内存申请。vector随机访问性能好,插入删除性能差;list随机访问性能差,插入删除性能好。原创 2022-11-07 21:11:15 · 648 阅读 · 0 评论 -
【C++STL】vector的使用,相关方法详解和注意点
必须使用Shape,因为只有基类的指针或引用才可以访问派生类的成员*)原创 2022-11-07 18:29:36 · 292 阅读 · 0 评论