使用C++向量时,有哪些特别需要注意的事项?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1150个文字,预计阅读时间需要5分钟。
1. 初始化+C++11后新增了花括号{}的初始化方式,需注意与()的区别,例如: + `std::vector vecTest1(5);` // 初始化5个元素,每个都是0 + `std::vector vecTest2{5};` // 初始化1个元素,值为5
2.添加元素
1. 初始化
c++ 11以后新增了大括号{}的初始化方式,需要注意与()的区别,如:
std::vector<int> vecTest1(5); //初始化5个元素,每个都是0
std::vector<int> vecTest2{ 5 }; //初始化1个元素,值是5
2. 添加元素:push_back
通过push_back添加新的元素进入vector后,vector的内存有时候会发生变化,这取决于size和capacity大小,当然这些都是系统来处理的,详细可以参考stl源码
当size<capacity的时候,直接加到末尾,不会变化
当size==capacity的时候,会重新申请另外一块内存,然后copy过去加到尾部,这个时候就会有变化了。
本文共计1150个文字,预计阅读时间需要5分钟。
1. 初始化+C++11后新增了花括号{}的初始化方式,需注意与()的区别,例如: + `std::vector vecTest1(5);` // 初始化5个元素,每个都是0 + `std::vector vecTest2{5};` // 初始化1个元素,值为5
2.添加元素
1. 初始化
c++ 11以后新增了大括号{}的初始化方式,需要注意与()的区别,如:
std::vector<int> vecTest1(5); //初始化5个元素,每个都是0
std::vector<int> vecTest2{ 5 }; //初始化1个元素,值是5
2. 添加元素:push_back
通过push_back添加新的元素进入vector后,vector的内存有时候会发生变化,这取决于size和capacity大小,当然这些都是系统来处理的,详细可以参考stl源码
当size<capacity的时候,直接加到末尾,不会变化
当size==capacity的时候,会重新申请另外一块内存,然后copy过去加到尾部,这个时候就会有变化了。

