STL常用函数

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

发布了74 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37507976/article/details/94212983