C++ STL中的容器简介
来源:互联网 发布:win10安装软件失败 编辑:程序博客网 时间:2024/06/06 12:44
C++STL中提供了强大的容器(containers)来替代程序中常用的数据结构,主要包括:字符串(string), 动态数组 (vector), 队列(queue), 栈 (stack), 堆 (priority_queue), 链接表 (list), 集合 (set), 字典 (map)。
使用这些容器可以极大的简化程序的编写,提高编程的效率。也是我个人更喜欢C++(相对于C而言)的重要原因。废话不多说,直接来看看各个容器中常用的操作。
1. 各容器中常用的操作
此外,priority_queue中的top()
函数——取出堆中的最大(或最小)值;stack的top()
函数——访问下一个元素(最近插入栈中的元素);set和map中的count()
函数——返回某个元素出现的次数,也比较常用。
2. 容器应用的简单说明
在C++中,推荐使用vector来代替纯数组,使用string来表示字符串,deque则多用于表示增加删除特别频繁的数据(尤其是在前面——非最后一个增删数据)。queue、priority_queue、stack、set、map则用于存储特定类型的数据。
1 . 关于vector 2D数组
#include <vector>using namespace std;int main(){ vector<<vector int> > v2d; // 注意,后方两个">"之间有空格 return 0; // 在实际使用中,可以用于表示图(vertex从1到N-1)}
2 . maxheap及minheap
#include <queue>using namespace std;int main(){ priority_queue<int> maxheap; priority_queue<int, vector<int>, greater<int> > minheap; return 0;}
3 . map与图
如果说,2D vector在表示图时可能会因为给出的vertex并不是连续而出现一些不便,那么map的键值对则较为完美的解决了这一问题
// 一个简单示例#include <vector>#include <map>#include <iostream>using namespace std;struct Node { int data; Node(int i):data(i) {}};int main(void){ map<int, vector<Node> > mv; mv[1].push_back(Node(1)); // 插入一个与节点“1”相连的节点的相关信息 mv[1].push_back(Node(2)); for (int i = 0; i < mv[1].size(); i++) cout<<' ' << mv[1][i].data; // 逐项输出与节点“1”相连的数据 return 0;}
3. 参考资料
- C++reference:http://www.cplusplus.com/reference/
阅读全文
0 0
- C++STL容器简介
- C++STL中的容器
- 【学习C++】标准C++中的STL容器类简介
- C++中的STL容器简介
- C++中的STL容器简介
- C++ STL中的容器简介
- 标准C++中的STL容器类简介
- 标准C++中的STL容器类简介
- 标准C++中的STL容器类简介
- C模板实现STL容器中的vector
- C++STL中的set容器和map容器
- STL容器类简介
- STL容器简介
- STL容器简介
- STL容器简介
- STL主要容器简介
- STL 容器简介
- STL容器 初步简介
- CustomViewDemo自定义view
- 二叉搜索树的后序遍历序列java实现
- ssm-xml配置式整合
- ubuntu14.04安装mysql并且开启外网访问
- 顺序表的基本操作实现
- C++ STL中的容器简介
- 线程、进程、协程
- C++ Singleton模式之线程安全
- 为什么href超链接就是Get请求,而form就是post请求,form表单里写get呢?
- 文章标题
- Java 实现 Map 和 Object 互相转换的几种方法
- 超链接的请求方式是什么 是get 还是post?
- 为什么只需要一个eden而需要两个survivor?
- Android 修改 hosts 文件