
stl
shaoweiah
这个作者很懒,什么都没留下…
展开
-
c++迭代器失效问题探究
迭代器失效:该迭代器不再表示任何元素,即该迭代器已经不表示任何元素。何时发生:处理vector,string,deque时,如果进行添加和删除操作就会导致迭代器失效。《C++ Primer》中总结如下:(1)添加元素后:容器是vector或string时,如果存储空间重新分配,之前指向容器的迭代器、指针和引用都会失效;如果没有重新分配,插入位置之前的迭代器、指针和引用都有效,插入位置之后的失效容器是deque,插入到除首尾位置之外的任何位置都会导致迭代器、指针和引用失效;在首尾添加,则迭代器失效原创 2020-05-09 16:40:44 · 277 阅读 · 0 评论 -
stl-vector源码注解
#include<iostream>#include<algorithm>#include<string>namespace ve { template<typename T> class Vector { public: typedef T value_type; typedef value_type* iteartor...原创 2020-05-08 18:19:36 · 185 阅读 · 0 评论 -
type traits小总结
主要是阅读了侯捷老师的《stl源码剖析》的迭代器部分的内容,进行的一点总结:type traits是什么?字面翻译,就是类型特点,顾名思义,就是某个类本身的特质。在下图中,迭代器是容器和算法之间的桥梁,而算法在调用使用数据的过程中,也需要知道这个数据或者说容器本身的性质。迭代器中的type traits有哪些?template <class I>struct itera...原创 2020-05-08 17:01:57 · 491 阅读 · 0 评论 -
stl五个内存基本处理工具
stl定义的五个全局函数,作用于未初始化空间,便于容器的实现。包括contruct(), destroy()和uninitialized_copy(), uninitialized_fill(), uninitialized_fill_n,后面三个分别对应于高层次函数copy(), fill(),fill_n(),都是stl算法。1. construct(),属于<stl_construc...原创 2020-05-08 15:08:42 · 238 阅读 · 0 评论