c++prime重学(三)基于第四版
来源:互联网 发布:原生js实现分页效果 编辑:程序博客网 时间:2024/05/29 18:16
泛型算法:可作用字不同类型的容器和不同类型的元素上。
每个算法都需要使用(至少)两个迭代器来指出该算法操纵的元素范围,第一个迭代器
指向第一个元素,而第二个迭代器则指向最后一个元素的下一位置。第二个迭代器所指向
的元素[有时被称为超出末端迭代器]本身不是要操作的元素,而被用做终止遍历的哨兵。
使用泛型算法必须包含头文件:
#include<algorithm>
#include<numeric>
简单查找算法:
find(beg,end,val)算法返回引用第一个匹配元素的迭代器
count(beg,end,val)算法返回元素在输入序列中出现次数的计数。
写容器元素算法:使用这些算法写元素师要当心,必须确保算法所写的序列至少足以存储要写入的元素。
fill(beg,end,val)在有效的输入范围内,写入val值
copy算法:
ilst是一个存放int型数据的list对象,可如下将它copy给一个vector对象
vector<int> ivec;copy(ilst.begin(),ilist.end(),back_inserter(ivec));上面等价于:
vector<int>ivec(ilst.begin().ilst.end());
replace算法:
这个调用将所有的值为0的实例替换成42
replace(ilst.begin(),ilist.end(),0,42);
sort算法:
对vector对象的元素按次序排列
sort(words.begin(),words.end());unique算法:
该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器,表示无重复的的值范围的结束。
unique实际上并咩有删除任何元素,而是将无重复的元素复制到序列的前端,从而覆盖相邻的重复元素。unique返回的
迭代器指向超出无重复的元素范围末端范围末端的下一个位置。
vector<string>::iterator end_unique=unique(words.begin(),words.end());
erase算法:
这个函数调用从end_unique指向的元素开始删除,直到words的最后一个元素也删掉为止。
words.erase(end_unique,words.end());
谓词:
//指出第一个字符串是否比第二个短bool isShorter(const string &s1,const string &s2){ return s1.size()<s2.size();}//判断给出的string对象的长度是否不小于6bool GT6(const string &s){ return s.size()>=6;}
stable_sort算法:
这个函数调用后,words中的元素按长度大小排序,而长度相同的单词则仍然保持字典顺序。
stable_sort(words.begin(),word.end(),isShorter)
count_if算法:
执行count_if时,首先读取它的头两个实参所标记的范围内的元素,每读出一个元素,就将它传递给第三个实参表示的谓词函数。
vector<string>::size_type wc=count_if(words.begin(),words.end(),GT6);
- c++prime重学(三)基于第四版
- c++prime重学(一)基于第四版
- c++prime重学(二)基于第四版
- c++prime重学(四)基于第四版
- 【重学《C++Primer第四版》】第一章、快速入门
- 【重学《C++Primer第四版》】第五章、表达式
- 【重学《C++Primer第四版》】第六章、语句
- 【重学《C++Primer第四版》】第七章、函数
- 重学Spring(三)基于注解的配置
- 【重学《C++Primer第四版》】第四章、数组和指针
- 【重学《C++Primer第四版》】第九章第十章、容器(顺序容器和关联容器)
- 控制流【重学C之三】
- 【重学《C++Primer第四版》】第二章、变量和基本类型
- 【重学《C++Primer第四版》】第三章、标准库类型
- 【重学《C++Primer第四版》】第八章、标准IO库
- 重学c++primer(1)
- 重学c++primer(2)
- 重学c++primer(6)
- ios启动 判断使用不同的 storyboard
- goldengate extract为何停止工作,但不报错,如何解决?
- word页码倒排
- IT博文推荐
- 黑马程序员---內省、注解与类加载器
- c++prime重学(三)基于第四版
- codeforces problem/415/A
- Python+Django+SAE系列教程4-----操作文件
- Spring mvc中@RequestMapping 6个基本用法小结
- eth0,eth1,eth2,lo是什么意思?
- 黑马程序员--- 正则表达式
- 第6周作业3-Fibonacci数列(网络131黄宇倩)
- 如何在Linux下安装和配置phpMyAdmin?
- 探究中水回用工艺中反渗透装置的操作工艺