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