resize()的本质是push_back()和pop_back(),shrink_to_fit()可以缩水vector中预留的空间,但是不能缩水已经有元素的空间。
值得深思的结果
一、单纯的push_back的坏处
单纯的push_back不提前reserve比较大的空间会导致不断地申请空间,拷贝构造,析构。
所以需要提前reserve好足够大的空间。
图解
二、加上reserve的好处
-
reserve()是预留空间,但不会产生对象的构造,但是resize()一定会发生对象的构造和析构行为的。
图解
三、insert的本质
- insert的本质使用到了
拷贝构造和拷贝赋值
insert的图解
四、压入对象指针
- 若元素为指针类型,则指针被托管。而不是
指针所指向的空间被托管。
手动delete










网友评论