知识点
泛型算法中的重排容器算法,以及算法中常见的lambda表达式用法。
知识内容
vector容器是一个顺序容器,初始化方法是{string1,string2}; 排序算法是sort(vector.begin(), vector.end());剔重算法是unique(vector.begin(),vector.end()),返回指向末尾的迭代器;删除算法是erase(vector.unique, vector.end())。
stable_sort算法稳定排序,保存相同元素在原序列的位置不变。
lambda表达式的形式是
[捕获列表](参数列表)->返回类型{函数体;}
看成是一个匿名函数,它的参数列表是由一个列表的元素自动指定,它的捕获列表是列表之外的变量赋值。常见的场景是如果排序有特殊的要求,要求不超过某个数,那么这个数可以作为变量放在捕获列表中。
对于例子[sz](const string &a) { return a.size() >= sz; },解释是sz是字符串的长度的下限,对字符串a的过滤条件是a的长度大于等于sz。
for_each算法是对范围内每个元素执行函数操作,可以是打印元素等
for(auto str:words)是遍历一个列表的简写形式,之前用for(auto it = words.begin(); it != words.end(); it++)显得长的。
其他
泛型算法很有用,记录下来,方便后面使用。
链接
https://github.com/xierensong/learngit/blob/master/STL/1.cpp