21xrx.com
2024-05-19 15:58:50 Sunday
登录
文章检索 我的文章 写文章
C++中的Vector类
2023-06-20 21:49:12 深夜i     --     --
C++ Vector类 数据结构 动态数组 集合操作

C++中的Vector类是一种动态数组,可存储任何数据类型。它工作的方式类似于数组,但是它具有更多的功能。Vector类具有自动内存管理功能,可以动态增加或删除大小,同时还具有与数组相同的快速访问速度。下面就介绍一下C++中的Vector类。

定义一个Vector类

在使用Vector类之前,需要包含头文件 。下面是定义一个向量的方式:


#include <vector>

using namespace std;

vector<int> vec; // 创建一个空向量

在上面的声明中,vector 表示创建一个int类型的向量。同样的方式也可以用于创建其他类型的向量,如double、bool、char等。

向向量中添加元素

向向量中添加元素有两种方式:使用push_back()和insert()。

使用push_back()函数向向量中添加元素:


vector<int> vec;

vec.push_back(10);

vec.push_back(20);

vec.push_back(30);

此时向量vec包含3个元素:10、20和30。

使用insert()函数可以更灵活地向向量中添加元素:


vector<int> vec;

vec.insert(vec.begin(), 10); // 在开始位置添加元素

vec.insert(vec.end(), 20); // 在结尾位置添加元素

vec.insert(vec.begin()+1, 30); // 在第二个元素位置添加元素

上面的代码将分别向向量的开始、结尾、第二个元素位置添加元素。

访问向量中的元素

可以使用下标或迭代器来访问向量中的元素。下标的起始索引为0,最大索引为size()-1。


vector<int> vec;

vec.push_back(10);

vec.push_back(20);

vec.push_back(30);

// 使用下标访问向量中的元素

cout << vec[0] << endl; // 输出10

cout << vec[1] << endl; // 输出20

cout << vec[2] << endl; // 输出30

// 使用迭代器访问向量中的元素

for (vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {

  cout << *it << endl; // 分别输出10、20、30

}

删除向量中的元素

可以使用erase()函数来删除向量中的元素,该函数有多个重载版本。


vector<int> vec;

vec.push_back(10);

vec.push_back(20);

vec.push_back(30);

// 删除第二个元素

vec.erase(vec.begin() + 1);

// 输出剩余的元素

for (vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {

  cout << *it << endl; // 分别输出10、30

}

以上代码将删除向量vec中的第二个元素“20”,并输出结果。

总结

C++中的Vector类是一种灵活的动态数组,可以动态增加或删除大小。它非常适用于需要存储变长数据的情况。在使用时需要注意头文件的引入、元素的添加、访问和删除等操作。下面给出一个完整的例子:

  
  

评论区

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