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