使用C++向量时,有哪些特别需要注意的事项?

2026-04-29 14:564阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1150个文字,预计阅读时间需要5分钟。

使用C++向量时,有哪些特别需要注意的事项?

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分钟。

使用C++向量时,有哪些特别需要注意的事项?

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过去加到尾部,这个时候就会有变化了。

阅读全文