### C++ STL (Standard Template Library) 范例详解 #### 容器部分:Vector 在C++标准模板库(STL)中,`vector`是一个非常重要的容器类型,它能够存储固定类型的元素,并且可以自动调整大小。下面将详细介绍如何使用`vector`。 #### Vector 的构造方法 1. **空向量构造**: ```cpp vector<int> v1; ``` 创建一个空的`vector`对象。 2. **指定大小的构造**: ```cpp vector<int> v2(10); ``` 创建一个包含10个元素的`vector`对象,默认情况下这些元素被初始化为`int`类型的默认值(即0)。 3. **指定大小及初始值的构造**: ```cpp vector<int> v3(10, 0); ``` 创建一个包含10个元素的`vector`对象,并将所有元素初始化为0。 4. **通过数组范围构造**: ```cpp string str[] = {"Alex", "John", "Robert"}; vector<string> v4(str + 0, str + 3); ``` 使用数组的某个区间来初始化`vector`。这里`str + 0`表示数组的起始位置,`str + 3`表示结束位置(不包含该位置),因此`v4`包含了`str`中的三个字符串。 5. **复制构造**: ```cpp vector<string> v5(v4); ``` 通过另一个`vector`对象初始化新的`vector`对象。`v5`将会与`v4`具有相同的元素。 #### Vector 的成员函数:assign() `assign()`函数用于重置`vector`的内容,它可以接受两个参数: 1. **指定范围**: ```cpp int ary[] = {1, 2, 3, 4, 5}; vector<int> v; v.assign(ary, ary + 5); ``` 使用数组`ary`的范围`[ary, ary + 5)`来重新设置`vector`的内容。这里的`ary`是数组的起始地址,`ary + 5`是结束地址。 2. **指定次数和值**: ```cpp v.assign(3, 100); ``` 将`vector`设置为含有3个元素,每个元素的值均为100。 #### Vector 的成员函数:at() `at()`函数用于安全地访问`vector`中的元素。如果访问的索引超出范围,则会抛出异常。 ```cpp vector<int> v(3, 0); v[0] = 100; v.at(1) = 200; ``` 这里使用了两种不同的方式来访问和修改`vector`中的元素:直接使用索引`[]`和使用`at()`。`at()`提供了一种更安全的方式。 #### Vector 的成员函数:back() `back()`函数返回`vector`中最后一个元素的引用。 ```cpp int main() { vector<int> v{1, 2, 3, 4, 5}; cout << "Last element: " << v.back() << endl; // 输出: Last element: 5 return 0; } ``` `back()`可以在不需要知道`vector`大小的情况下获取最后一个元素。 --- ### 总结 本篇主要介绍了C++ STL中`vector`容器的基础使用方法,包括不同类型的构造函数、`assign()`函数、`at()`函数以及`back()`函数的使用。这些知识点对于理解和使用`vector`非常重要,掌握了这些基本操作后,可以更高效地处理数据集合。接下来的文章将详细介绍其他STL容器如`deque`、`list`、`set`等的使用方法。




































剩余139页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库原理及应用第2章.ppt
- 基于聚类的二次异常入侵检测算法.docx
- 单片机人体脉搏检测系统设计.doc
- 电气基础知识讲座IT计算机专业资料.ppt
- 无线网络安全论文设计.docx
- 异步通信与同步通信.ppt
- 基于应用人才培养模式的计算机网络课程教改研究.docx
- DVBCQAM调制主要参数选择与测试.doc
- PLC的交流异步电机转速闭环控制系统设计.doc
- 计算机系统配套零、部件竞争策略分析报告.docx
- 《信息系统集成技术实践》课程大纲.doc
- 基于数据挖掘的针灸治疗重症肌无力的现代文献取穴规律分析.docx
- 电力信息网络安全存在问题及对策分析.docx
- 基于 Python 的自动驾驶规划与控制代码实现
- 下半年软考系统集成项目管理测验真题(上午).doc
- 自动化PLC课程设计实施方案指导书.doc


