📜  C++ Vector及其初始化方法(1)

📅  最后修改于: 2023-12-03 14:39:49.235000             🧑  作者: Mango

C++ Vector及其初始化方法

Vector是C++中的一个标准库,用于表示动态数组。Vector中的元素可以自由地添加和删除,而且支持随机访问,性能较好。本文将介绍C++ Vector及其初始化方法。

Vector的使用

使用Vector需要包含头文件<vector>,并使用std命名空间。

#include <vector>

int main() {
    std::vector<int> vec; // 创建int类型的空Vector
    vec.push_back(1); // 在Vector末尾添加一个元素1
    vec.push_back(2); // 在Vector末尾添加一个元素2

    return 0;
}

上述代码使用了std::vector<int>创建一个空的Vector,然后使用push_back函数在Vector末尾添加了两个元素。

Vector的访问可以通过下标或指针进行。

std::vector<int> vec{1, 2, 3, 4};

// 通过下标访问
std::cout << vec[0] << std::endl; // 输出1

// 通过指针访问
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << std::endl;
}
Vector的初始化方法
1. 直接赋值初始化

可以直接将一个初始化列表赋值给Vector。这种方法在初始化Vector时非常方便。

std::vector<int> vec = {1, 2, 3, 4, 5};

// 等同于
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
2. 拷贝初始化

通过使用等号将一个Vector拷贝给另外一个Vector,完成拷贝初始化。这种方法创建一个新的Vector,并将原始Vector中的元素复制到新的Vector中。

std::vector<int> vec1 = {1, 2, 3, 4, 5};
std::vector<int> vec2 = vec1;

// 等同于
std::vector<int> vec2;
for (auto it = vec1.begin(); it != vec1.end(); ++it) {
    vec2.push_back(*it);
}
3. 列表初始化

可以使用花括号表示法进行列表初始化。这种方法与直接赋值初始化方法等价。

std::vector<int> vec{1, 2, 3, 4, 5};

// 等同于
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
4. 默认初始化

可以直接创建默认初始化的Vector,这时只创建一个长度为0的Vector。

std::vector<int> vec; // 默认初始化的Vector
5. 指定长度初始化

可以通过指定长度和元素类型进行初始化。这种方法创建一个指定长度的Vector,并将所有元素初始化为默认值。例如,如果创建一个长度为5的int类型Vector,所有元素的值将设置为0。

std::vector<int> vec(5); // 创建一个长度为5的int类型Vector,所有元素初始化为0
6. 指定长度和元素类型并赋初值

可以通过指定长度、元素类型和初值进行初始化。这种方法创建一个指定长度的Vector,并将所有元素初始化为指定的初值。

std::vector<int> vec(5, 1); // 创建一个长度为5的int类型Vector,所有元素初始化为1
结论

本文介绍了C++中的Vector,并演示了几种常见的初始化方法。Vector是C++中常用的数据结构之一,能够很好地满足不定长数组的需求。