
c++基础
seemeno
这个作者很懒,什么都没留下…
展开
-
顺序容器
顺序容器 本内容摘自c++ primer 第9章 概述 顺序容器 类型 访问 插入删除 vector 可变大小数组 支持快速随机访问 在尾部之外的位置插入或删除元素可能很慢,在中间位置添加或删除元素很耗时 deque 双端队列 支持快速随机访问 在头尾位置插入/删除速度很快,在中间位置添加或删除元素很耗时 list 双向链表 只支持双向顺序访问 任何位置进行插入/删除速度很...原创 2019-03-26 10:17:29 · 320 阅读 · 0 评论 -
动态内存
以下内容总结自c++ primer 智能指针 类似常规指针,但可以自动释放所指向的对象 shared_ptr:允许多个指针指向同一个对象,reset手动释放 unique_ptr:独占所指向的对象,可通过release释放对对象的控制权,但同时需要将指向的对象赋值给其它智能指针 weak_ptr:伴随类,是一个弱引用,指向shared_ptr所管理的对象,在确定是否应释放对象时,shared_p...原创 2019-03-26 15:56:17 · 143 阅读 · 0 评论 -
拷贝控制
当定义一个类时,我们显示地或隐世地指定在此类型的对象拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作,包括:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数。以上操作为拷贝控制操作。 class Foo{ friend void swap(Foo&,Foo*);//将swap定义为友元函数,并在外部重载 public: Foo();//默...原创 2019-03-26 21:54:38 · 510 阅读 · 0 评论 -
顺序容器vector
顺序容器vector (以下内容参考stl源码剖析) 概述 vector与array:数据安排和操作方式相似,但array是静态空间,一旦配置了就不能改变,除非用户自己生成空间。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。 vector的关键在于其对大小的控制以及重新配置时的数据搬移效率。 vector源码摘要 //alloc 是SGI STL的空间配置器 ...原创 2019-04-03 11:30:04 · 213 阅读 · 0 评论 -
顺序容器list
顺序容器list 概述 (以下内容参考stl源码剖析) 相较于vector的连续线性空间,list就更为复杂。其好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此list对于任何位置的元素插入或移除,永远是常数。 是一个环状双向链表,只有一个指向空节点的指针node iterator begin(){ return (link_type)((*node).next); } iterato...原创 2019-04-03 14:24:01 · 399 阅读 · 0 评论