C++编程:深度解析vector关键字与应用
需积分: 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`的使用能极大地提高代码的效率和可读性。
FanZD_Star
- 粉丝: 78
- 资源: 4
最新资源
- 虚拟人中台相关方案文档
- unity 3D文字系统源码VText.zip
- madgrad:MADGRAD的JAX实现
- SimpleHUD:SimpleHUD是一款易于使用但美观的Android HUD(或对话框)
- 汇编语言程序设计(资料+视频教程).rar
- 信呼协同办公OA系统 v2.1.8
- meelouth.github.io:网站
- bank-java:一个用 Java 编写的带有 GUI 的基本银行程序
- 亚马逊交易-crx插件
- stylex
- Data-Analysis-Project-in-Python:Python中Fifa 18数据集的数据分析。 该项目包括可视化和用于预测目的的机器学习
- glslmath:C ++仅限头文件的库,可模拟GLSL数学-开源
- TongYWPF.Template.NumberOne202303DemoK
- 剁手党买家秀助手-crx插件
- ExpandTabView-master
- React