21xrx.com
2024-11-22 12:41:43 Friday
登录
文章检索 我的文章 写文章
C++11 向量(vector)
2023-06-24 05:00:29 深夜i     --     --
C++11 向量(vector) STL 容器 动态数组

C++11 向量(vector)是一种动态数组容器,它可以自动扩展和收缩,提供了一种高效的存储和访问元素的方式。下面将介绍向量的基本概念和使用。

1. 创建和初始化向量

创建一个向量需要包含头文件 ,然后使用vector关键字定义一个对象,如下所示:


#include<vector>

std::vector<int> myVector;

上面的代码定义了一个类型为int的向量对象myVector。可以在创建向量时指定其初始大小和值,如下所示:


std::vector<int> myVector(5); // 创建大小为5的向量,初始值为0。

std::vector<int> myVector(5, 1); // 创建大小为5的向量,初始值为1。

2. 向向量中添加元素

向向量中添加元素可以使用push_back()方法。下面的代码向myVector中添加了3个元素:


std::vector<int> myVector;

myVector.push_back(1); // 添加元素1

myVector.push_back(2); // 添加元素2

myVector.push_back(3); // 添加元素3

也可以使用insert()方法,在指定位置插入一个或多个元素:


std::vector<int> myVector;

myVector.insert(myVector.begin(), 1); // 在myVector的第一个位置插入元素1

myVector.insert(myVector.begin()+1, 2); // 在myVector的第二个位置插入元素2

myVector.insert(myVector.end(), 3); // 在myVector的最后一个位置插入元素3

3. 访问向量元素

可以使用下标运算符[]或at()方法访问向量中的元素:


std::vector<int> myVector;

myVector.push_back(1);

myVector.push_back(2);

std::cout << myVector[0] << std::endl; // 输出1

std::cout << myVector.at(1) << std::endl; // 输出2

4. 删除向量中的元素

可以使用pop_back()方法删除向量中的最后一个元素,也可以使用erase()方法,在指定位置删除一个或多个元素:


std::vector<int> myVector;

myVector.push_back(1);

myVector.push_back(2);

myVector.push_back(3);

myVector.pop_back(); // 删除最后一个元素3

myVector.erase(myVector.begin()+1); // 在myVector的第二个位置删除元素2

5. 向量的其他常用方法

- size()方法:返回向量中元素的数量。

- clear()方法:清空向量中的所有元素。

- empty()方法:判断向量是否为空。

- resize()方法:改变向量的大小。

- reserve()方法:为向量保留一定的空间,可以避免频繁地重新分配内存。

6. 总结

C++11向量是一种高效的动态数组容器,可以自动扩展和收缩,提供了访问和操作元素的丰富方法,可以适用于各种类型的数据存储和处理需求。在使用时需要注意合理使用内存空间,避免不必要的内存浪费和程序性能下降。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复