C++ Vector详解与用法示例
需积分: 9 120 浏览量
更新于2024-09-12
收藏 74KB DOC 举报
"这篇文档主要介绍了C++中的标准模板库STL中的vector容器的使用方法,包括其定义、初始化、值初始化以及一些重要的操作,如push_back、size和resize等。"
C++中的`std::vector`是一个动态数组,它是STL容器中的一种,提供了类似于数组的功能,但比传统数组更强大,因为它可以自动调整大小。`vector`的存储空间是连续的,这使得它的元素可以被快速访问,并且可以高效地进行迭代器遍历。
1. **定义和初始化**
- `vector<typeName> v1;` 定义了一个空的`vector`。
- `vector<typeName> v2(v1);` 或 `v2 = v1;` 或 `vector<typeName> v3(v1.begin(), v1.end());` 这些都是创建`v1`的副本。
- `vector<typeName> v3(n, i);` 创建一个包含`n`个值为`i`的`vector`。
- `vector<typeName> v4(n);` 创建一个包含`n`个默认值(对于基本类型通常是0)的`vector`。
- `vector<int> v5(a, a+5);` 使用数组`a`的前5个元素初始化`vector`。
- `vector<类型> 标识符(最大容量,初始所有值);` 还可以指定最大容量和初始值。
2. **值初始化**
- 如果未指定初始化值,`vector`会进行值初始化,即使用默认构造函数创建元素。
- 对于有构造函数的类类型元素,`vector`会使用类的构造函数进行初始化。
- 对于无构造函数的类类型元素,`vector`会创建一个带有初始值的对象来初始化元素。
3. **重要操作**
- `v.push_back(t)` 在`vector`末尾添加元素`t`,使`vector`的大小增加。
- `v.size()` 返回`vector`中元素的数量,是无符号整型`size_type`。
- `v.resize(new_size)` 改变`vector`的大小为`new_size`,如果扩大了,则用默认构造函数创建新元素;如果缩小了,则超出范围的元素被销毁。
- `v.resize(new_size, value)` 与`resize(new_size)`类似,但新添加的元素初始化为`value`。
除此之外,`vector`还有其他一些操作,如:
- `v.insert(iterator pos, const T& val)` 在指定位置`pos`插入一个元素`val`。
- `v.erase(iterator pos)` 删除指定位置的元素。
- `v.clear()` 清空`vector`,删除所有元素。
- `v.begin(), v.end()` 分别返回指向`vector`第一个元素和超出最后一个元素的迭代器。
- `v.at(index)` 安全访问`vector`的元素,如果索引越界会抛出异常。
- `v.front(), v.back()` 分别返回`vector`的第一个和最后一个元素。
`vector`的这些功能使其成为C++中非常常用的容器,尤其是在需要动态增长数组或需要高效访问元素的情况下。不过,由于`vector`的存储是连续的,所以插入和删除元素(尤其是中间元素)可能涉及到大量元素的移动,这在性能上可能不如`list`等其他容器。因此,选择合适的容器需要根据具体应用场景来决定。
2012-09-30 上传
2023-08-13 上传
2010-09-19 上传
2023-04-25 上传
2023-09-28 上传
2023-07-20 上传
2023-08-29 上传
小甾
- 粉丝: 2
- 资源: 9
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全