C++编程:深度解析vector关键字与应用

需积分: 0 0 下载量 173 浏览量 更新于2024-08-03 收藏 7KB MD 举报
C++中vector关键字的使用笔记 在C++编程语言中,`vector`是一个非常重要的标准模板库(STL)容器,它提供了一种动态数组的功能,允许我们在程序运行时灵活地调整数组的大小。这篇笔记将详细介绍`vector`的定义、初始化以及元素的访问方法。 首先,`vector`的定义方式是使用模板类`std::vector`,基本语法如下: ```c++ vector<typename> name; ``` 这里的`typename`是你要存储的数据类型,可以是基本类型如`int`、`double`,也可以是自定义类型或者其他的STL容器。例如,如果你想要一个存储整数的`vector`,可以写成`vector<int> vi;`。 对于二维`vector`,可以这样定义: ```c++ vector<vector<typename>> Arrayname[size]; ``` 这将创建一个一维`vector`,其中每个元素都是另一个`vector`。例如,`vector<int> vi[100];`会创建一个包含100个`vector<int>`元素的数组。 #### 常用初始化方法: 1. 使用花括号直接赋值: ```c++ vector<int> v{1, 2, 3, 4, 5}; // 直接使用花括号赋值 for (auto i : v) cout << i << ""; // 输出12345 ``` 2. 使用圆括号赋值: ```c++ vector<int> v(5); // 初始化5个值为0的元素 for (auto i : v) cout << i << ""; // 输出00000 vector<int> v(5, 4); // 初始化5个值为4的元素 for (auto i : v) cout << i << ""; // 输出44444 ``` #### `vector`容器内元素的访问: 1. 通过下标访问: 对于定义为`vector<int> v`的`vector`,可以使用`v[0]`、`v[1]`、`v[2]`等方式访问元素。注意,下标必须在合法范围内(即`0`到`v.size() - 1`)。`v[0]`、`v[1]`、`v[2]`等价于`*(v.begin())`、`*(v.begin() + 1)`、`*(v.begin() + 2)`。 2. 通过迭代器访问: 迭代器是STL中用于遍历容器内元素的一种机制,它可以看作是类似于指针的对象。定义迭代器的代码是: ```c++ vector<typename>::iterator it; ``` 然后通过迭代器`it`访问`vector`的元素,例如: ```c++ it = v.begin(); // 将it指向v的第一个元素 cout << *it << ""; // 输出第一个元素 it++; // 移动到下一个元素 cout << *it << ""; // 输出第二个元素 ``` 此外,`vector`还提供了许多其他操作,如插入元素(`push_back()`、`insert()`)、删除元素(`pop_back()`、`erase()`)、查找元素(`find()`)等。`vector`的大小可以通过`size()`函数获取,可以通过`reserve()`预先分配内存以优化性能,而`resize()`则可以改变`vector`的大小并可能填充默认值。 `vector`在C++中扮演着至关重要的角色,它结合了数组的便利性和动态数组的灵活性,是实现动态数据结构和高效算法的重要工具。在实际编程中,掌握`vector`的使用能极大地提高代码的效率和可读性。