c++容器
2019-01-24 22:30:32
记录学习pat的一些知识,有待更新
注:本文是对algorithm 算法笔记 的总结
c++标准库模板(standard template library,stl)
【vector】
1.单独定义一个vector vector<typename> name;
- vector<int> name;
- vector<double> name;
- vector<char> name;
2.定义vector数组
- vector<typename> arrayname[arraysize]
- 例如 vector<int> vi[100];
3.vector 容器内元素访问
- 通过下标访问
定义一个为 vector<typename> vi; 可以直接访问如:vi[0]、vi[1]
2.通过迭代器访问
vector<typename>::iterator it; 这样 it 就是一个vector<typename>::iterator 型的变量;
指出的是vi[i]和*(vi.begin()+i)是等价的;(类似于指针)
4.vector常用函数解析
(1)push_back();
(2)pop_back()
()size()
()clear()
(5)insert()
(6)erase()
5.vector 的常见用途
(1)存储数据
(2)用连接表存储图
【set】
1.set的定义:set<typename> name;
- set<int> name;
- set<double> name;
- set<char> name;
- set数组的定义: set<typename> arrayname[arraysize-1] 如:set<int> a[100];
2.set容器内元素的访问
- set<typename>::iterator it; 这样 it 就是一个set<typename>::iterator 型的变量;
3.set常用函数
- insert()
- find()
- erase()
- size()
- clear()
4.set的常见用途
set最主要的作用是自动去重并按升序排序
【map】
1.map的定义:map<typename1,typename2> mp;
比如:map<string,int> mp; 第一个 typename1 是键的类型,第二个 typename2 是值的类型 注意如果是字符串到整型的映射必须使用string
2.map容器内元素的访问
(1)通过下标,如: mp['c'];
(2)通过迭代器,如:map<typename1,typename2>::iterator it;
#include<stdio.h> #include<map> using namespace std; int main(){ map<char,int> mp; mp['m']=20; mp['r']=40; mp['s']=54; for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++){ print("%c %d\n",it->first,it->second); } return 0; }
3.map常用函数
- find()
- erase()
- size()
- clear()
4.map的常见用途
- 需要建立字符与整数之间的映射
- 判断大整数或者其他类型的数据是否存在的题目,把map当bool数组使用
【queue】
1.queue的定义:queue<typename> name;
2.queue容器内元素的访问
先进先出的结构,所以只能用front() 访问队首元素,或是通过 back() 访问队尾元素
3.queue常用函数
- push()
- front(),back()
- pop()
- empty()
- size()
4.queue 的常见用途