c++ stl
1.vector(变长数组 常用于邻接表)
vector<int>vt
1.1 迭代器
vector<int>::iterator it
vt.begin(),vt.end()
1.2
尾添加:push_back(x)
尾删除:pop()
元素个数:size()
清空:clear()
插入:insert(it,x)
删除:
删除单个:erase(it)
删除区间:erase(first,last)
2.set(自动去重并按升序排列)
set<int>st
2.1 迭代器
set<int>::iterator it;
st.begin(), st.end();
2.2
插入:insert(x)
查找并返回对应值的迭代器:find(x){找不到,返回st.end()}
删除:
删除单个:erase(it)/erase(x)
删除区间:erase(first,last)
元素个数:size()
清空:clear()
3.string
string str
3.1 迭代器
string::iterator it
str.begin() str.end()
3.2
可以直接进行操作:
str1=str2+str3/==/+=/!=/</>/>=/<=(比较是以字典序比较)
长度/元素个数:length()/size()
插入:
insert(pos,string){pos指的是str[2]的2}
insert(it,it1,it2){it原来的字符串的迭代器,it1,it2指的是把str的it1,it2的内容插给别人}
insert(it,c){单个字符插入}
删除:
删除单个:erase(it)
删除区间:erase(first,last)
删除固定长度:erase(pos,length)
清空:clear()
获得子串:substr(pos,len){返回pos号位开始,长度为len的子串}
查找:
find(str2){在str中查找str2出现的位置pos}
find(str2,pos){从str的pos处开始找str2,返回出现的位置}
如果找不到 返回 string::npos
取代:
replace(pos,len,str2)
replace(it1,it2,str2)
4.map(用于寻找对应)
map<int,int>mp
4.1迭代器
map<int,int>::iterator it;
mp.begin() mp.end()
it->first(之前) it->second(转换后)
4.2
查找:find(key){mp['a']=2,it=find('a')},返回迭代器
删除:
删除单个:erase(it)/erase(key)
删除区间:erase(first,last)
清空:clear()
5.queue(广度优先搜索)
queue<int>q;
5.1
获得队首元素:front()
获得队尾元素:back()
对首元素出队:pop()
入队:push(x)
判空:empty()
元素个数:size()
6.stack(后进先出)
stack<int>st
6.1
入栈:push(x)
获得栈顶元素:top()
弹出栈顶:pop()
判空:empty()
获得元素个数:size()
7.algorithm头文件
7.1
较大值较小值:max(x,y)min(x,y)/x,y可以是整数也可以是浮点数
取绝对值:abs(x)/x必须是整数
交换:swap(x,y)
反转:reverse(it1,it2)(对应数组指针:str。begin()或者a+4之类的)
排序:sort(a,a+N,cmp)(对应a[])
sort(vt.begin(),vt.end(),cmp)(对于vector,string)

浙公网安备 33010602011771号