📜  C++ STL中的向量数组(1)

📅  最后修改于: 2023-12-03 15:29:51.321000             🧑  作者: Mango

C++ STL中的向量数组

C++ STL中的向量数组(vector)是一个动态数组,可以根据需要自动调整大小,并且支持快速随机访问。 向量数组可以使用STL中提供的方法轻松操作它们,例如添加元素,删除元素,查找元素等。 在本文中,我们将深入了解C++ STL中的向量数组。

定义向量数组

在C++中,可以使用以下语法定义向量数组:

#include<vector>
std::vector<int> vec;

上述语法定义了一个名为“vec”的向量数组,其中元素的数据类型为整数。一旦定义了向量数组,就可以使用以下语法向其中添加元素:

vec.push_back(20);
vec.push_back(30);
vec.push_back(40);

向vector数组添加一个整数元素的常用方法是使用push_back()方法。 在上面的代码片段中,vec数组包含整数元素20,30和40。 而且,要获取向量数组的大小,可以使用以下语法:

int size = vec.size();

注:在使用向量数组之前,请确保包含<vector>标准库头文件。

访问向量数组

向量数组可以使用索引(下标)来访问其元素。 向量数组的第一个元素的索引为0,后续元素的索引依次增加。 如下所示:

int firstElement = vec[0];
int secondElement = vec[1];

注:使用与数组类似的方式来访问向量数组的元素,可以随机访问其任何位置,就像使用数组的索引访问元素一样。

向量数组的常用方法

下表介绍向量数组中常用的方法:

| 函数 | 描述 | | ----------- | ----------- | | push_back() | 在向量数组的末尾添加一个元素 | | pop_back() | 从向量数组的末尾删除一个元素 | | insert() | 在向量数组的指定位置插入一个元素 | | erase() | 从向量数组中删除一个或多个元素 | | clear() | 从向量数组中删除所有元素 | | size() | 获取向量数组中元素的数量 | | empty() | 检查向量数组是否为空 | | front() | 获取向量数组的第一个元素 | | back() | 获取向量数组的最后一个元素 |

实例
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    //定义含有三个整数元素的向量数组
    vector<int> vec;
    vec.push_back(20);
    vec.push_back(30);
    vec.push_back(40);

    //获取向量数组的大小
    int size = vec.size();
    cout << "向量数组大小为:" << size << endl << endl;

    //访问向量数组的元素
    int firstElement = vec[0];
    int secondElement = vec[1];
    cout << "向量数组的第一个元素为:" << firstElement << endl;
    cout << "向量数组的第二个元素为:" << secondElement << endl << endl;

    //删除向量数组的最后一个元素
    vec.pop_back();
    cout << "删除后的向量数组为:" << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    cout << endl << endl;

    //向向量数组中插入一个新元素
    vec.insert(vec.begin() + 1, 50);
    cout << "插入后的向量数组为:" << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    cout << endl << endl;

    //从向量数组中删除一个元素
    vec.erase(vec.begin() + 1);
    cout << "删除后的向量数组为:" << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    cout << endl << endl;

    //检查向量数组是否为空
    cout << "向量数组是否为空:" << vec.empty() << endl << endl;

    //删除向量数组中所有元素
    vec.clear();
    cout << "删除后的向量数组大小为:" << vec.size() << endl;
    
    return 0;
}

输出结果:

向量数组大小为:3

向量数组的第一个元素为:20
向量数组的第二个元素为:30

删除后的向量数组为:
20 30

插入后的向量数组为:
20 50 30

删除后的向量数组为:
20 30

向量数组是否为空:0

删除后的向量数组大小为:0