C++_STL范例大全(一)

### C++ STL范例大全(一):容器部分详解 #### Vector 在C++标准模板库(STL)中,`vector`是一种动态数组容器,它能够根据需要自动调整大小。以下是一些关于`vector`的基本操作示例: ##### 构造函数 ```cpp #include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string str[] = {"Alex", "John", "Robert"}; // 空向量对象 vector<int> v1; // 创建包含10个空元素的向量 vector<int> v2(10); // 创建包含10个元素的向量,并为每个元素赋值0 vector<int> v3(10, 0); // 创建向量并从字符串数组中分配值 vector<string> v4(str + 0, str + 3); vector<string>::iterator sIt = v4.begin(); while (sIt != v4.end()) cout << *sIt++ << " "; cout << endl; // 复制构造函数 vector<string> v5(v4); for (int i = 0; i < 3; i++) cout << v5[i] << " "; cout << endl; return 0; } ``` **输出结果**: ``` Alex John Robert Alex John Robert ``` 这段代码展示了`vector`的多种构造方式,包括空构造、指定长度构造、初始化列表构造以及复制构造。 ##### assign方法 `assign`方法用于将新值赋给向量中的元素或改变向量的大小。 ```cpp #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main() { int ary[] = {1, 2, 3, 4, 5}; vector<int> v; // 将数组ary的内容赋给向量v v.assign(ary, ary + 5); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout << endl; // 将v替换为3个元素,每个元素值为100 v.assign(3, 100); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout << endl; return 0; } ``` **输出结果**: ``` 1 2 3 4 5 100 100 100 ``` ##### at方法 `at`方法用于安全地访问向量中的元素,当索引超出范围时会抛出异常。 ```cpp #include <iostream> #include <vector> using namespace std; int main() { vector<int> v(3, 0); v[0] = 100; v.at(1) = 200; for (int i = 0; i < 3; i++) cout << v.at(i) << " "; cout << endl; return 0; } ``` **输出结果**: ``` 100 200 0 ``` ##### back方法 `back`方法用于获取向量最后一个元素的引用。 ```cpp #include <iostream> #include <vector> using namespace std; int main() { vector<int> v{1, 2, 3}; cout << "Last element is: " << v.back() << endl; return 0; } ``` **输出结果**: ``` Last element is: 3 ``` #### Deque `deque`(双端队列)与`vector`类似,但提供了更快的两端插入和删除操作。接下来的部分将详细介绍`deque`的操作示例及其与其他容器的区别。 #### List `list`是双向链表,支持高效插入和删除操作。这部分将展示如何使用`list`进行数据处理。 #### Set `set`是排序且不重复元素的集合,使用红黑树实现。这里将探讨`set`的基本用法和特性。 #### Multiset `multiset`与`set`相似,但允许存储多个相同的元素。 #### Map `map`是键值对的集合,其中键是唯一的,且按升序排列。 #### Multimap `multimap`与`map`类似,但允许多个键具有相同的值。 #### Stack `stack`是一种后进先出(LIFO)的数据结构,提供`push`和`pop`操作。 #### Queue `queue`是一种先进先出(FIFO)的数据结构,支持`push`和`pop`操作。 #### Priority_queue `priority_queue`是一种特殊类型的队列,始终弹出优先级最高的元素。 以上介绍了`vector`的基础操作和使用场景。接下来的文章中,我们将继续探索STL中的其他容器类型及其应用案例。




















剩余139页未读,继续阅读

- huliwhere2012-10-17简单但足够了,如果能有范例就更好了

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


最新资源
- 《ACM-ICPC 的参考资料》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- CO2驱替甲烷的深度探讨与研究基于Comsol数值模拟分析,基于COMSOL软件的二氧化碳驱替甲烷技术研究,comsol 二氧化碳驱替甲烷 ,COMSOL模拟; 二氧化碳驱替; 甲烷浓度变化; 数值模
- 基于stm32和proteus的家居环境采集仿真设计,采集家居环境的信温湿度、光照值以及气体检测(源码+报告+演示视频)
- 《2021 数模美赛O奖论文及代码公开》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- dvanced archive password recovery pro v4.54
- 《2024蓝桥杯嵌入式学习资料》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- JavaEE框架及关键技术的设计与实现指南:面向企业级应用
- MATLAB Simulink仿真研究:永磁同步电机FOC矢量控制与DTC矢量控制的动静态性能对比分析,MATLAB Simulink仿真研究:永磁同步电机FOC矢量控制与DTC矢量控制的动静态性能对
- 液压.zip
- 一体空间站 1.zip
- STM32学习标准库实现STM32 ADC采集1路、2路、多路
- STEP7-MicroWIN-SMART-V2.8库包括模拟量比例换算指令库
- 银河系加昼夜地球.zip
- 银河系扩展包2.81.3—1.5移植版(1.4移植1.5).zip
- 银河系扩展包2.6by航天星辰.zip
- 宇航员.zip


