vector:
定义:vector<typename> name;
迭代器: vector<typename>::iterator it; 输出:*it 下一个:it++ 特定位置:*(it+i);
vector<int> vi;
首尾元素:vi.begin(); vi.end(); end是尾元素下一个地址。
后面添加元素:vi.push_back();
删除尾元素:vi.pop_back();
获取vector元素个数:vi.size();
清空所有元素:vi.clear();
在it处插入x:vi.insert(it,x);
删除单个元素在it处:vi.erase(it);
删除区间元素[first,last)前闭后开:vi.erase(first,last);
vector没有 .find()这种用法,可使用find函数,头文件#include<algorithm>
例子:vector<int>::iterator result=find(vi.begin(),vi.end(),value);
set:
定义:set<typename> name; 默认升序,无重复元素
可重复元素集合:multiset
只去重不排序: unordered_set;
升序:set<int,less<int>> m;
降序:set<int,greater<int>> m;
set只能通过迭代器进行访问:set<typename>::iterator it;
set<int> st;
插入元素:st.insert();
查找元素:st.find(x);
删除指定位置元素(注:只能通过迭代器):st.erase(st.find(100));
删除指定值元素:st.erase(value) 删除值为value的元素
删除指定区间元素:st.erase(it,st.end());注:这里和vector不同,这里是迭代器。
元素个数:st.size();
清空:st.clear();
string
定义:string str;
长度:str.length();
读入输出字符串:只能用cin,cout
存放带空格字符串:getline(cin,str);
转字符数组:str.c_str();
拼接:str1+str2;
比较: > < =直接字典序排列
插入:str.insert(pos,string);或指定str指定位置插入str.intsert(it,str1.begin(),str1.end());
删除:str.erase(it) it为迭代器。
删除区间:两种,一种迭代器str.erase(first,last),第二种str.erase(pos,length) pos为位置,删除length的字符串。
清空:str.clear();
子串:str.substr(pos,length) pos位置长度length
find函数失配返回值:string::npos
查找:str.find(str1);用if(str.find(str1)!=string::npos)判断是否匹配。
pos位开始查找:str.find(str1,pos);
替换:str.replace(pos,len,str2) pos位长len替换str2
str.replace(it1,it2,str2) 迭代器[it1,it2)换为str2
将数值转化为字符串。返回对应的字符串 to_string()
sstream
参考博文:https://blog.csdn.net/zdlnlhmj/article/details/79462770
map
map可以使用下标访问和迭代器访问。
map可以试用it->first来访问键,it->second来访问值。
mp.find(key) 查询键为key的值
mp.erase(key)删除键值对。
mp.size();
mp.clear();
queue
push()
pop()
front()
back()
empty()
size()
priority_queue
push()
top()
pop()
empty()
size()
stack
push()
top()
pop()
empty()
size()
List
https://blog.csdn.net/yu876876/article/details/81698030