C++ 语言 动态数组 vector 的常用操作方法

C++阿木 发布于 2025-06-14 8 次阅读


阿木博主一句话概括:C++ 动态数组 Vector 的常用操作方法详解

阿木博主为你简单介绍:
在 C++ 中,`std::vector` 是一种非常灵活和强大的动态数组容器,它提供了丰富的操作方法,使得动态数组的管理变得简单高效。本文将围绕 `std::vector` 的常用操作方法进行详细介绍,包括构造函数、元素访问、容量管理、迭代器操作、元素添加与删除、排序与搜索等。

一、
`std::vector` 是 C++ 标准库中的一种动态数组容器,它能够自动管理内存,并在需要时动态扩展或缩减其大小。与传统的数组相比,`std::vector` 提供了更多的便利和灵活性,使得数组操作更加高效和安全。

二、构造函数
`std::vector` 提供了多种构造函数,允许用户以不同的方式初始化容器。

cpp
include
include

int main() {
// 默认构造函数,创建一个空的 vector
std::vector vec1;

// 初始化 vector,指定初始容量和元素值
std::vector vec2(10, 0);

// 使用另一个容器初始化 vector
std::vector vec3(vec2.begin(), vec2.end());

return 0;
}

三、元素访问
`std::vector` 提供了多种方式来访问其元素。

cpp
include
include

int main() {
std::vector vec = {1, 2, 3, 4, 5};

// 通过下标访问元素
std::cout << "Element at index 2: " << vec[2] << std::endl;

// 使用 at() 方法访问元素,提供边界检查
std::cout << "Element at index 2 (safe): " << vec.at(2) << std::endl;

// 使用 front() 和 back() 访问首尾元素
std::cout << "Front element: " << vec.front() << std::endl;
std::cout << "Back element: " << vec.back() << std::endl;

return 0;
}

四、容量管理
`std::vector` 提供了多种方法来管理其容量。

cpp
include
include

int main() {
std::vector vec = {1, 2, 3, 4, 5};

// 获取当前容量
std::cout << "Current capacity: " << vec.capacity() << std::endl;

// 获取当前大小
std::cout << "Current size: " << vec.size() << std::endl;

// 重新分配容量
vec.reserve(20);

// 获取新的容量
std::cout << "New capacity: " << vec.capacity() << std::endl;

return 0;
}

五、迭代器操作
`std::vector` 支持迭代器,允许用户遍历容器中的所有元素。

cpp
include
include

int main() {
std::vector vec = {1, 2, 3, 4, 5};

// 使用迭代器遍历 vector
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << it << " ";
}
std::cout << std::endl;

return 0;
}

六、元素添加与删除
`std::vector` 提供了多种方法来添加和删除元素。

cpp
include
include

int main() {
std::vector vec = {1, 2, 3, 4, 5};

// 在末尾添加元素
vec.push_back(6);

// 在指定位置插入元素
vec.insert(vec.begin() + 2, 7);

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

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

return 0;
}

七、排序与搜索
`std::vector` 提供了排序和搜索元素的方法。

cpp
include
include
include

int main() {
std::vector vec = {5, 2, 9, 1, 5, 6};

// 使用 sort() 方法对 vector 进行排序
std::sort(vec.begin(), vec.end());

// 使用 find() 方法搜索元素
auto it = std::find(vec.begin(), vec.end(), 5);
if (it != vec.end()) {
std::cout << "Element 5 found at index: " << std::distance(vec.begin(), it) << std::endl;
}

return 0;
}

八、总结
`std::vector` 是 C++ 中非常实用的动态数组容器,它提供了丰富的操作方法,使得动态数组的管理变得简单高效。读者应该能够掌握 `std::vector` 的基本操作,并在实际编程中灵活运用。

(注:本文仅为概述,实际操作中可能需要结合具体情况进行调整。)