文章目录

C++ 容器中的随机访问容器1. 数组 (`std::array`)2. 向量 (`std::vector`)3. 双端队列 (`std::deque`)4. 字符串 (`std::string`)5. 映射 (`std::map`)6. 集合 (`std::set`)

总结

C++ 容器中的随机访问容器

C++ 是一种功能强大的编程语言,拥有丰富的标准库,其中包括了各种不同类型的容器,用于存储和组织数据。在这些容器中,有一类容器被称为随机访问容器,它们允许以常量时间复杂度

O

(

1

)

O(1)

O(1)进行元素的随机访问,这意味着你可以像数组一样通过索引或迭代器访问容器中的元素。在本文中,我们将介绍 C++ 中支持随机访问的主要容器。

1. 数组 (std::array)

std::array 是一个固定大小的数组容器,它在创建时需要指定大小,一旦创建,大小就不能改变。这种容器的优点是具有数组的性能,但提供了更多的安全性和功能,例如边界检查。

#include

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

// 随机访问

int element = myArray[2]; // 访问第三个元素(索引从0开始)

2. 向量 (std::vector)

std::vector 是一个动态数组容器,它可以在运行时根据需要增加或减少大小。它提供了在尾部高效添加和删除元素的功能,并支持随机访问。

#include

std::vector myVector = {1, 2, 3, 4, 5};

// 随机访问

int element = myVector[2]; // 访问第三个元素(索引从0开始)

3. 双端队列 (std::deque)

std::deque 是一个双端队列容器,允许在头部和尾部高效添加和删除元素。它也支持随机访问,使其成为处理大量数据时的良好选择。

#include

std::deque myDeque = {1, 2, 3, 4, 5};

// 随机访问

int element = myDeque[2]; // 访问第三个元素(索引从0开始)

4. 字符串 (std::string)

std::string 是用于存储字符序列的容器,它支持随机访问字符。它提供了丰富的字符串操作函数,并允许像数组一样随机访问字符。

#include

std::string myString = "Hello, World!";

// 随机访问字符

char character = myString[7]; // 获取字符串中的空格

5. 映射 (std::map)

std::map 是一个关联容器,它以键-值对的形式存储数据,键是有序的。它支持通过键进行随机访问。

#include

std::map myMap = {{"Alice", 25}, {"Bob", 30}, {"Carol", 28}};

// 随机访问

int age = myMap["Bob"]; // 获取 "Bob" 的年龄

6. 集合 (std::set)

std::set 是另一个关联容器,它存储唯一值的集合,值是有序的。它支持通过元素进行随机访问。

#include

std::set mySet = {5, 2, 8, 1, 3};

// 随机访问

int element = *mySet.begin(); // 获取集合中的最小元素

总结

这些容器提供了不同类型数据的存储和组织方式,并根据需要提供了高效的随机访问功能。在选择容器时,要根据具体的需求和性能要求来决