c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

c++ vector容器函数使用范例

黎芸贵 2023-06-20编程经验
前言在C++编程语言中,std::vector是一个动态数组容器,可以方便地管理和操作可变大小的元素序列。它是STL(标准模板库)中的一个重要组件,并且提供了丰富的函数来支持对元素的插入、删除、访问以及其他常用操作。1.创建和初始化vector容器在使用std::vector之前,需要包含头文件。下面是一些常用的创建和初始化vector容器

前言

在C++编程语言中,std::vector是一个动态数组容器,可以方便地管理和操作可变大小的元素序列。它是STL(标准模板库)中的一个重要组件,并且提供了丰富的函数来支持对元素的插入、删除、访问以及其他常用操作。

1. 创建和初始化vector容器

在使用std::vector之前,需要包含头文件<vector>。下面是一些常用的创建和初始化vector容器的方法:

#include <vector>

// 创建一个空的vector
std::vector<int> myVector;

// 创建一个包含指定大小的vector,且初始化为默认值
std::vector<int> myVector(5); // 大小为5的vector,初始值为0

// 创建一个包含指定数量和初始值的vector
std::vector<int> myVector(5, 10); // 大小为5的vector,初始值为10

// 使用初始化列表创建vector
std::vector<int> myVector = {1, 2, 3, 4, 5};

// 通过复制另一个vector来创建
std::vector<int> newVector(anotherVector);

2. 向vector容器中添加和删除元素

vector容器提供了多个函数来添加和删除元素,下面是几个常用的示例:

2.1 添加元素
std::vector<int> myVector;

// 在末尾添加一个元素
myVector.push_back(10);

// 在指定位置插入一个元素
myVector.insert(myVector.begin() + 2, 20);

// 在末尾插入另一个vector的所有元素
std::vector<int> anotherVector = {30, 40, 50};
myVector.insert(myVector.end(), anotherVector.begin(), anotherVector.end());
2.2 删除元素
std::vector<int> myVector = {10, 20, 30, 40, 50};

// 删除末尾的元素
myVector.pop_back();

// 删除指定位置的元素
myVector.erase(myVector.begin() + 2);

// 删除指定范围内的元素
myVector.erase(myVector.begin(), myVector.begin() + 2);

3. 访问vector容器中的元素和遍历

可以使用下标运算符[]或at()函数来访问vector容器中的元素。另外,也可以使用迭代器来遍历vector容器中的元素:

std::vector<int> myVector = {10, 20, 30, 40, 50};

// 使用下标运算符访问元素
int firstElement = myVector[0];

// 使用at()函数访问元素(提供了越界检查)
int secondElement = myVector.at(1);

// 使用迭代器遍历vector容器中的元素
for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
    std::cout << *it << " ";
}

4. 其他常用操作和注意事项

除了上述介绍的基本用法外,std::vector还提供了其他一些常用的函数,例如:

4.1 获取vector大小
std::vector<int> myVector = {10, 20, 30, 40, 50};
int size = myVector.size();
4.2 判断vector是否为空
std::vector<int> myVector;
if (myVector.empty()) {
    std::cout << "Vector is empty." << std::endl;
}
4.3 清空vector
std::vector<int> myVector = {10, 20, 30, 40, 50};
myVector.clear();

需要注意的是,在插入或删除元素时,vector会自动调整内存大小,但可能会导致迭代器失效,因此需要谨慎操作。