一.vector
- 应用:用于普通数组会超内存的情况,以邻接矩阵的方式存储图
- 定义:typename可以是int、double、char、结构体
- 元素访问:下标访问
迭代器访问:vector< typename >::iterator it;
- 函数:
#include<vector>
using namespace std;
vector<typename> V;
vector<vector<typename> > V;
int main()
{
V.push_back(value);
V.pop_back(value);
V.size();
V.clear();
V.insert(it,value);
V.erase(it);
V.erase(first,last);
return 0;
}
二.set
- 应用:去重,自动排序
- 定义:typename类型同vector;
- 元素访问:只能用迭代器set< typename >::iterator it;
- 函数:
#include<set>
using namespace std;
set<typename> S;
int main()
{
S.insert(value);
S.find(value);
S.size();
S.erase(it);
S.erase(value);
S.erase(first,last);
S.clear();
S.insert(it,x);
return 0;
}
三.string
- 应用:代替一般字符数组char str[];
- 访问:
通过下标访问
迭代器访问:string::iterator it;
[注]:如果要读入或者输出,只能用cin,cout
- 函数:
#include<string>
using namespace std;
string str;
int main()
{
str1 += str2;
str1 == str2;
str.length();
str.insert(pos,str);
str.insert(it,it1,it2)
str.erase(it);
str.erase(first,last);
str.erase(pos,len);
str.clear();
substr(pos,len);
string::npos
str.find(str2);
str.find(pos,str2);
str.replace(pos,len,str2);
return 0;
}
四.map
- 应用:可将任何基本类型映射到任何基本类型,相当于python里的字典
- 访问:
通过下标访问:mp[’c‘]=a,注意关键词的类型 通过迭代器访问:map<typename1,typename2>::iterator it;
可用it->first访问键,it->second访问值 另外,map会以键的自大到小排序
- 函数:
#include<map>
using namespace std;
map<typename1,typename2> M;
int main()
{
M.find(key);
M.erase(it);
M.erase(key);
M.erase(first,last);
M.size();
M.clear();
return 0;
}
五.queue
- 应用:先进先出
- 访问:front()访问队首,back()访问队尾
- 函数:
#include<queue>
using namespace std;
queue<typename> Q;
int main()
{
Q.push(value);
Q.front();
Q.back();
Q.pop();
Q.empty();
Q.size();
return 0;
}
六.priority_queue
- 访问:只能用top()访问队首元素
- 函数:
#include<queue>
using namespace std;
priority_queue<typename> Q;
int main()
{
Q.push(value);
Q.top();
Q.pop();
Q.empty();
Q.size();
return 0;
}
- 优先级设置:less< int >表示数字越大优先级越大,great< int >刚好相反;
priority_queue<int,vector<int>,less<int>> Q;
priority_queue<int,vector<int>,great<int>> Q;
priority_queue<typename> Q;