STL常用算法
来源:互联网 发布:电信运营商的网络架构 编辑:程序博客网 时间:2024/06/06 01:00
1、sort:
函数原型:sort(v.begin(),v.end());
2、unique:
函数原型:unique(v.begin(),v.end());
auto end_unique = unique(begin(vec1),end(vec1));
vec1.erase(end_unique,vec1.end());//去掉重复元素。
3、string相关:
string str = to_string(i);//整型数转换为string。
int i = stoi(str);//string转换为整型值。
str2.append(str);//追加字符串。
4、remove和erase移除元素:
str.erase(remove(str.begin(),str.end(),' '),str.end());
5、序列反转reverse:
reverse(begin(str1),end(str1));//字符串反转。
6、序列交换swap:
swap(str1,str2);//交换两个字符串。
7、统计等于某值的容器元素个数count:
list<int> l;
count(l.begin(),l.end(),value)。
8、条件统计count_if:
count_if(l.begin(),l.end(),pred)。谓词pred含义同find_if中的谓词。
9、查找容器元素find:
10、条件查找容器元素find_if:
11、子序列搜索search:
search算法函数在一个序列中搜索与另一序列匹配的子序列。参数分别为一个序列的开始位置,结束位置和另一个序列的开始,结束位置。
12、重复元素子序列搜索search_n:
13、最后一个子序列搜索find_end:
函数原型find_end(v1.begin(),v1.end(),v2.begin(),v2.end());在V1中要求的位置查找V2中要求的序列。
14、元素复制copy:
copy(v.begin(),v.end(),l.begin());将v中的元素复制到l中。
15、元素变换transform:
replace算法将指定元素值替换为新值。
17、条件替换replace_if:
函数原型:replace_if(v.begin(),v.end(),odd,100);
18、n次填充fill_n:
函数原型fill_n(v.begin(),5,-1);向从v.begin开始的后面5个位置跳入-1。
19、随机生成n个元素generate:
函数原型:generate_n(v.begin(),5,rand);向从v.begin开始的后面5个位置随机填写数据。
20、条件移除remove_if:
返回值相当于移除满足条件的元素后形成的新向量的end()值。
函数原型:remove_if(v.begin(),v.end(),even);
21、堆排序sort_heap:
使用:
make_heap(v.begin(),v.end());
sort_heap(v.begin(),v.end());
函数原型:sort(v.begin(),v.end());
2、unique:
函数原型:unique(v.begin(),v.end());
auto end_unique = unique(begin(vec1),end(vec1));
vec1.erase(end_unique,vec1.end());//去掉重复元素。
3、string相关:
string str = to_string(i);//整型数转换为string。
int i = stoi(str);//string转换为整型值。
str2.append(str);//追加字符串。
str2.resize(str2.size()+d,'0');//通过resize将字符串高位补d个零。
string str2 = str.substr(j,cnt);//构造字符串:在str字符串中从j位置开始的cnt个字符。
string(f,end(str));//构造字符串:在str字符串中从f位置开始到某个结束位置的所有字符。
4、remove和erase移除元素:
str.erase(remove(str.begin(),str.end(),' '),str.end());
5、序列反转reverse:
reverse(begin(str1),end(str1));//字符串反转。
6、序列交换swap:
swap(str1,str2);//交换两个字符串。
7、统计等于某值的容器元素个数count:
list<int> l;
count(l.begin(),l.end(),value)。
8、条件统计count_if:
count_if(l.begin(),l.end(),pred)。谓词pred含义同find_if中的谓词。
9、查找容器元素find:
它用于查找等于某值的元素。它在迭代器区间[first,last)(闭开区间)上查找等于value值的元素,如果迭代器i所指的元素满足*i=value,则返回迭代器i;未找到满足条件的元素,返回last。
函数原型:find( v1.begin(), v1.end(), num_to_find );
10、条件查找容器元素find_if:
利用返回布尔值的谓词判断pred,检查迭代器区间[first,last)(闭开区间)上的每一个元素,如果迭代器i满足pred(*i)=true,表示找到元素并返回迭代值i(找到的第一个符合条件的元素);未找到元素,返回末位置last。
函数原型:find_if(v.begin(),v.end(),divby5);
11、子序列搜索search:
search算法函数在一个序列中搜索与另一序列匹配的子序列。参数分别为一个序列的开始位置,结束位置和另一个序列的开始,结束位置。
12、重复元素子序列搜索search_n:
search_n算法函数搜索序列中是否有一系列元素值均为某个给定值的子序列。
函数原型:search_n(v.begin(),v.end(),3,8),在v中找到3个连续的元素8。
13、最后一个子序列搜索find_end:
函数原型find_end(v1.begin(),v1.end(),v2.begin(),v2.end());在V1中要求的位置查找V2中要求的序列。
14、元素复制copy:
copy(v.begin(),v.end(),l.begin());将v中的元素复制到l中。
15、元素变换transform:
函数原型:transform(v.begin(),v.end(),l.begin(),square);也是复制,但是要按某种方案复制。
replace算法将指定元素值替换为新值。
17、条件替换replace_if:
函数原型:replace_if(v.begin(),v.end(),odd,100);
18、n次填充fill_n:
函数原型fill_n(v.begin(),5,-1);向从v.begin开始的后面5个位置跳入-1。
19、随机生成n个元素generate:
函数原型:generate_n(v.begin(),5,rand);向从v.begin开始的后面5个位置随机填写数据。
20、条件移除remove_if:
返回值相当于移除满足条件的元素后形成的新向量的end()值。
函数原型:remove_if(v.begin(),v.end(),even);
21、堆排序sort_heap:
使用:
make_heap(v.begin(),v.end());
sort_heap(v.begin(),v.end());
阅读全文
0 0
- STL算法常用算法
- STL的常用算法
- STL的常用算法
- STL的常用算法
- STL的常用算法 .
- STL常用算法
- STL中的常用算法
- STL常用算法
- STL中的常用算法
- STL常用算法
- STL中的常用算法
- STL常用算法
- 常用STL算法整理
- STL常用算法
- STL常用算法3
- STL常用算法
- STL常用算法
- STL的常用算法
- 让禅道使用本地数据库 而不使用禅道自带的数据库
- 第一次作业
- Java笔记
- aix的lvm管理
- 【bzoj1146】 [CTSC2008]网络管理Network
- STL常用算法
- 戴尔XPS 13 Ubuntu 16.04 Chrome浏览器闪屏问题解决办法
- 确定的有限自动机VS非确定的有限自动机(DFANFA)
- 对Android APP的各种样式统一修改方法(这里列举了通知状态栏StatueBar,标题栏ActionBar,ToolBar和按钮Button的样式修改)
- 我的第一次div布局
- Ubuntu16.04LTS 安装搜狗输入法
- clang 在Ubuntu上的配置
- Android onClick 按钮单击事件 四种常用写法
- hdu 1847 Good Luck in CET-4 Everybody!(基础博弈)