📜  c++ 函数动态向量 - C++ (1)

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

C++ 函数动态向量

动态向量(Dynamic Vector)是一种自动调整大小的数据结构,它可以根据需要动态地扩展或缩小存储空间。在C++中,我们可以使用STL的vector容器来实现动态向量。

vector容器

vector是一个动态数组,它相当于C语言中的数组,但没有固定的大小限制。vector容器是C++标准库中的一种容器,它提供了方便的功能,如元素的添加、删除和访问等。

创建vector容器

使用vector容器需要包含头文件。下面是创建一个空的vector:

#include <vector>
using namespace std;

vector<int> v;   // 创建空的vector

vector中的元素可以是任何类型,例如int、double、string等。上面的代码定义了一个存储int类型元素的vector容器。

添加元素

vector提供了push_back()函数用于在vector中添加元素,该函数将元素插入到vector的末尾。例如:

v.push_back(1);  // 在vector的末尾添加元素1
v.push_back(2);  // 在vector的末尾添加元素2
v.push_back(3);  // 在vector的末尾添加元素3
访问元素

vector提供了下标运算符[]用于访问vector中的元素,下标从0开始。例如:

cout << v[0] << endl;   // 输出元素1
cout << v[1] << endl;   // 输出元素2
cout << v[2] << endl;   // 输出元素3
删除元素

vector提供了pop_back()函数用于在vector中删除元素,该函数从vector的末尾删除一个元素。例如:

v.pop_back();  // 删除vector中的最后一个元素
封装动态向量类

下面我们使用C++的类来封装动态向量,使得使用起来更方便和灵活。

class DynamicVector {
public:
    DynamicVector();                   // 构造函数
    ~DynamicVector();                  // 析构函数
    void add(int element);             // 添加元素
    void remove(int position);         // 删除指定位置的元素
    int get(int position);             // 获取指定位置的元素
    int size();                        // 获取向量大小

private:
    vector<int> vec;                   // 内部使用vector
};

上述类中,我们使用了vector作为内部的存储结构,并提供了添加、删除、获取和获取大小等操作的方法。

构造函数

下面是构造函数的实现:

DynamicVector::DynamicVector() {
    vec = vector<int>();   // 创建空的vector
}
析构函数

下面是析构函数的实现:

DynamicVector::~DynamicVector() {
    // vector会自动销毁
}
添加元素

下面是向动态向量中添加元素的实现:

void DynamicVector::add(int element) {
    vec.push_back(element);   // 在vector的末尾添加元素
}
删除元素

下面是删除动态向量中指定位置元素的实现:

void DynamicVector::remove(int position) {
    vec.erase(vec.begin() + position);   // 删除指定位置的元素
}
获取元素

下面是获取动态向量中指定位置元素的实现:

int DynamicVector::get(int position) {
    return vec[position];   // 获取指定位置的元素
}
获取大小

下面是获取动态向量大小的实现:

int DynamicVector::size() {
    return vec.size();   // 获取向量大小
}
使用动态向量类

下面是使用DynamicVector类的示例代码:

#include <iostream>
#include "DynamicVector.h"
using namespace std;

int main() {
    DynamicVector vec;
    vec.add(1);
    vec.add(2);
    vec.add(3);

    cout << "vec[0] = " << vec.get(0) << endl;
    cout << "vec[1] = " << vec.get(1) << endl;
    cout << "vec[2] = " << vec.get(2) << endl;
    cout << "vec size = " << vec.size() << endl;

    vec.remove(1);

    cout << "vec[0] = " << vec.get(0) << endl;
    cout << "vec[1] = " << vec.get(1) << endl;
    cout << "vec size = " << vec.size() << endl;

    return 0;
}

上述代码中,我们使用DynamicVector类创建了一个动态向量,向其中添加了三个元素,然后输出了这三个元素以及向量的大小。接着我们删除了第二个元素,再次输出向量中的元素以及向量的大小。运行上述代码,输出结果如下:

vec[0] = 1
vec[1] = 2
vec[2] = 3
vec size = 3
vec[0] = 1
vec[1] = 3
vec size = 2

从输出结果可以看出,我们成功地创建了动态向量类,并可以方便地使用它的方法实现向量的添加、删除和访问等操作。