c++ vector用法详解

C++ vector是一个动态数组,它支持STL的很多操作。动态意味着可以在运行时添加/删除元素,而不需要事先指定数组的大小。在这篇文章中,我们将全面介绍C++ vector的用法,包括如何声明和初始化各种类型的vector,如何添加/删除元素以及如何使用算法。

1. 声明和初始化vector

与普通数组一样,vector也有定义和初始化的方式。它们列举如下:

```C++

// 声明一个空vector

std::vector my_vec;

// 声明一个具有10个元素的vector,所有元素都初始化为0

std::vector my_vec(10);

// 声明一个具有5个元素的vector,所有元素都初始化为5

std::vector my_vec(5, 5);

// 声明一个具有3个元素的vector,元素值为1,2,3

std::vector my_vec = {1, 2, 3};

// 声明一个具有10个元素的vector,所有元素都初始化为0

std::vector my_vec(10, 0);

// 声明一个具有5个元素的vector,所有元素初始化为0但是类型为双精度数

std::vector my_vec(5, 0.0);

```

此外,您还可以从现有数组或其他向量初始化vector,以及使用迭代器和复制算法从容器中的某个位置复制元素。

```C++

int arr[] = {1, 2, 3, 4, 5};

// 从现有数组初始化vector

std::vector my_vec(arr, arr + sizeof(arr) / sizeof(arr[0]));

// 从现有vector复制元素来初始化另一个vector

std::vector another_vec(my_vec.begin(), my_vec.end());

// 使用std::copy算法从容器复制元素到vector

std::vector my_vec(5);

std::array my_arr = {1, 2, 3, 4, 5};

std::copy(my_arr.begin(), my_arr.end(), my_vec.begin());

```

2. 访问元素

使用vector时,您可以使用下标运算符或迭代器访问元素。

```C++

std::vector my_vec = {1, 2, 3};

// 使用下标运算符访问元素

int first_element = my_vec[0];

// 使用at方法访问元素

int second_element = my_vec.at(1);

// 使用迭代器访问元素

auto it = my_vec.begin();

int third_element = *it;

```

3. 添加/删除元素

动态数组的最大好处之一是可以添加/删除元素,而不需要重新分配数组。vector提供了很多方法来实现这一点。

```C++

std::vector my_vec = {1, 2, 3};

// 使用push_back添加元素到vector的末尾

my_vec.push_back(4);

// 使用insert方法在vector的特定位置插入元素

my_vec.insert(my_vec.begin() + 1, 5);

// 使用erase方法删除vector中的特定元素

my_vec.erase(my_vec.begin() + 2);

// 使用clear方法删除vector的所有元素

my_vec.clear();

```

请注意,当您删除元素时,vector会自动调整其大小。

4. vector的算法

vector是STL的一部分,因此您可以使用各种STL算法来处理它们。一些常见的算法包括:

```C++

// 查找vector中的最小元素

auto min_element = std::min_element(my_vec.begin(), my_vec.end());

// 查找vector中的最大元素

auto max_element = std::max_element(my_vec.begin(), my_vec.end());

// 对vector进行排序

std::sort(my_vec.begin(), my_vec.end());

// 对vector中的元素进行操作,以创建新vector

std::vector result_vec(my_vec.size());

std::transform(my_vec.begin(), my_vec.end(), result_vec.begin(), [](int x){ return x * 2;});

```

至此,我们详细介绍了C++ vector的用法,包括声明和初始化,访问元素,添加/删除元素以及使用算法处理元素。vector是C++编程中的一项重要技术,希望这篇文章可以帮助您更好地理解它。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(62) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部