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)



posted @ 2017-08-28 19:40  renxuanwei  阅读(120)  评论(0)    收藏  举报