【C++STL标准库】序列容器之array与vector
发布人:shili8
发布时间:2025-02-25 22:20
阅读次数:0
**序列容器之array与vector**
在 C++ 中,序列容器(Sequence Containers)是指能够存储一系列元素的数据结构。C++ 标准库提供了几个序列容器类,其中包括 `array` 和 `vector`。这两种容器都用于存储一组元素,但它们有不同的特性和使用方式。
**1. array**
`array` 是 C++11 引入的一种新类型的序列容器,它是 C++ 中最基本的序列容器之一。它提供了一种简单、轻量级的数组实现,能够存储一组元素。
###语法
cpptemplate <typename T, size_t N> class array;
其中 `T` 是元素类型,`N` 是容器大小。
### 构造函数
cpparray() = default; // 默认构造函数explicit array(size_t n); // 构造函数,指定容器大小template <typename... Args> explicit array(Args&&... args);
### 成员函数
cppT& operator[](size_t index); // 下标运算符const T& operator[](size_t index) const; // 下标运算符(常用) void fill(const T& value); // 填充容器template <typename... Args> void assign(size_t n, Args&&... args);
### 示例代码
cpp#include <iostream> #include <array> int main() { std::array<int,5> arr = {1,2,3,4,5}; // 下标运算符 std::cout << "arr[0] = " << arr[0] << std::endl; // 填充容器 arr.fill(10); for (int i : arr) { std::cout << i << " "; } std::cout << std::endl; return0; }
**2. vector**
`vector` 是 C++ 标准库中最常用的序列容器之一,它提供了一种动态数组的实现,能够存储一组元素。
###语法
cpptemplate <typename T> class vector;
其中 `T` 是元素类型。
### 构造函数
cppvector() = default; // 默认构造函数explicit vector(size_t n); // 构造函数,指定容器大小template <typename... Args> explicit vector(Args&&... args);
### 成员函数
cppT& operator[](size_t index); // 下标运算符const T& operator[](size_t index) const; // 下标运算符(常用) void push_back(const T& value); // 向容器尾部添加元素template <typename... Args> void emplace_back(Args&&... args);
### 示例代码
cpp#include <iostream> #include <vector> int main() { std::vector<int> vec = {1,2,3}; // 下标运算符 std::cout << "vec[0] = " << vec[0] << std::endl; // 向容器尾部添加元素 vec.push_back(4); for (int i : vec) { std::cout << i << " "; } std::cout << std::endl; return0; }
**总结**
`array` 和 `vector` 都是 C++ 标准库中提供的序列容器类,它们用于存储一组元素。`array` 提供了一种简单、轻量级的数组实现,而 `vector` 提供了一种动态数组的实现。两者都支持下标运算符和向容器尾部添加元素等功能。选择哪个容器取决于具体需求,例如需要固定大小还是动态大小的容器。