《算法笔记》阅读以及个人使用记录
vector
set
string
map
queue
stack
vector的用法
特点:可变长度数组
- vector 的定义以及迭代器定义
vector<typename> name;
vector<typename>::iterator it;
- 方法
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的常见用法
特点:内部自动有序齐且不含重复元素。
- set 的定义以及迭代器定义
set<typename> name
set<typename>::iterator it
- 方法
//插入
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();