C++ STL总结

《算法笔记》阅读以及个人使用记录

 vector
 set
 string
 map
 queue
 stack

vector的用法

特点:可变长度数组

  1. vector 的定义以及迭代器定义
    vector<typename> name;
    vector<typename>::iterator it;
  2. 方法
vector<typename> vi;
//访问
vi[0] vi[1]
*(it) *(it +1)

//添加元素
vi.push_back(1);

//删除元素
vi.pop_back();//尾元素
vi.erase(it);
vi.erase(it,it+3);

//获取大小
vi.size();

//清空
vi.clear();

//插入
vi.insert(vi.begin()+2,2333);//将2333插入vi[2]位置


set的常见用法

特点:内部自动有序齐且不含重复元素。

  1. set 的定义以及迭代器定义
    set<typename> name
    set<typename>::iterator it
  2. 方法
//插入
st.inser(x);
//查询
st.find(x);
//删除
st.earse(it);
st.earse(x);
st.earse(first,last);
//其他
st.size();
st.clear();

3.注意

在使用find时,涉及到for判断不能用<,而应该使用!=。

string的常见用法

1.定义及迭代器定义
string str;
string::iterator it;
2.方法

//直接相加
str3 = str1+str2;
//可按照字典序比较大小
//插入
str.insert(404,"life is too damn short");
//查找
str.find(str2,pos)
//  删除
str.erase(it);
str.erase(it+1,it+3);
str.clear();
//分离输出
str.substr(0,5);
//替代
str.replace(pos,len,str2);

map的常见用法

特点: 可以将任何基本类型映射到任何基本类型。
1.定义及迭代器定义
map<typename1,typename2> mp;
map<typename1,typename2>::iterator it;
2.方法

mp.find();
mp.earse();
mp.size();
mp.clear();

queue的常见用法

特点:先进先出容器
1.定义
queue<typename> name;
2.方法

q.push();
q.pop();
q.front();
q.back();
q.empty();//检查是否为空
q.size();

3.注意
queue的push操作知识创造了某元素的一个副本,因此在入队后对该元素修改不会影响队列中的副本。
解决:传址不传值。
特点:后进后出
1.定义
stack<typename> st;
2.方法

st.push();//入栈
st.top();
st.pop();
st.empty();//判空
st.size();
posted @ 2020-03-24 09:54  XinyuLee  阅读(139)  评论(0编辑  收藏  举报