自学内容网 自学内容网

C++ vector 容器

C++ vector 容器

概述

vector 是 C++ 标准模板库(STL)中的一个重要组成部分,它提供了一种动态数组的数据结构。vector 容器能够根据需要自动调整其大小,这使得它在管理数据集合时非常灵活和高效。在 C++ 中,vector 通常用于存储一系列元素,这些元素可以是基本数据类型(如 int、double 等),也可以是复杂的数据结构(如自定义类)。

基本操作

创建 vector

创建 vector 的基本方式是通过包含 <vector> 头文件,并使用 std::vector 命名空间。例如,创建一个整数类型的 vector 可以如下进行:

#include <vector>

std::vector<int> myVector;

添加元素

vector 提供了多种添加元素的方法,包括 push_back(),它可以在容器的末尾添加一个新元素:

myVector.push_back(10);
myVector.push_back(20);

访问元素

可以通过下标运算符 [] 访问 vector 中的元素,如下所示:

int firstElement = myVector[0]; // 访问第一个元素
int secondElement = myVector[1]; // 访问第二个元素

修改元素

可以直接通过下标修改 vector 中的元素:

myVector[0] = 100; // 修改第一个元素

删除元素

可以使用 pop_back() 方法删除 vector 末尾的元素:

myVector.pop_back(); // 删除最后一个元素

遍历 vector

可以使用范围基础的 for 循环或传统的 for 循环遍历 vector

// 范围基础的 for 循环
for (int element : myVector) {
    std::cout << element << std::endl;
}

// 传统 for 循环
for (size_t i = 0; i < myVector.size(); ++i) {
    std::cout << myVector[i] << std::endl;
}

vector 的大小

vector 的大小可以通过 size() 方法获取:

size_t vectorSize = myVector.size(); // 获取 vector 的大小

vector 的容量

vector 的容量可以通过 capacity() 方法获取,它表示在不重新分配内存的情况下,vector 可以容纳的元素数量:

size_t vectorCapacity = myVector.capacity(); // 获取 vector 的容量

高级特性

###reserve() 方法

reserve() 方法可以用来预先分配 vector 的内存,以优化性能。这在已知 vector 将要存储大量元素时特别有用:

myVector.reserve(1000); // 预先分配 1000 个元素的内存

vector 的内存管理

vector 的内存管理是自动的。当 vector 的大小超过其容量时,vector 会自动重新分配内存并复制现有元素到新的内存位置。这个过程可能会导致性能开销,因此在使用 vector 时,合理地预分配内存是非常重要的。

vector 的效率

vector 在末尾添加和删除元素通常是非常高效的,因为这些操作通常不需要移动其他元素。然而,在 vector 的开始或中间插入或删除元素可能会导致大量的元素移动,从而降低效率。

结论

vector 是 C++ 中一个强大且灵活的数据结构,适用于大多数需要动态数组的情况。通过了解其基本操作和高级特性,开发者可以更有效地使用 vector 来管理数据集合。


原文地址:https://blog.csdn.net/lsx202406/article/details/143728450

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!