STL库算法
文章平均质量分 58
STL六大组件之一算法
呆萌宝儿姐
CSDN专家博主、阿里云开发者社区专家博主、51CTO社区专家博主、360书馆认证博主、知乎掘金B站等平台受邀作者。
如遇开发、程序等需求,博客首页下拉加入公众号,私信博主
展开
-
STL综合案例——学校演讲比赛
文章目录项目介绍比赛规则:需求分析:实现思路:项目链接项目介绍比赛规则:• 某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。• 比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛;第一轮分为4个小组,每组6个人。比如编号为: 100-123. 整体进行抽签(draw)后顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。第二轮分为2个小组,每组6人。比赛完毕,原创 2020-06-21 09:33:17 · 4215 阅读 · 0 评论 -
STL常用算数生成与常用集合算法
全部案例链接https://download.csdn.net/download/weixin_45525272/12536637常用算数生成算法accumulate算法 计算容器元素累计总和 @param beg 容器开始迭代器 @param end 容器结束迭代器 @param value累加值accumulate(iterator beg, iterator end, value)fill算法 向容器中添加元素 @param beg 容器开始迭代器 @param end 容原创 2020-06-20 18:27:38 · 4149 阅读 · 0 评论 -
STL常用拷贝和替换算法
全部案例链接https://download.csdn.net/download/weixin_45525272/12536637常用拷贝和替换算法copy算法 将容器内指定范围的元素拷贝到另一容器中@param beg 容器开始迭代器@param end 容器结束迭代器@param dest 目标起始迭代器copy(iterator beg, iterator end, iterator dest)replace算法 将容器内指定范围的旧元素修改为新元素@param beg 容器开原创 2020-06-20 12:00:32 · 4172 阅读 · 0 评论 -
STL常用排序算法
全部案例链接https://download.csdn.net/download/weixin_45525272/12536637常用排序算法merge算法 容器元素合并,并存储到另一容器中@param beg1 容器1开始迭代器@param end1 容器1结束迭代器@param beg2 容器2开始迭代器@param end2 容器2结束迭代器@param dest 目标容器开始迭代器merge(iterator beg1, iterator end1, iterator beg原创 2020-06-20 11:57:19 · 4171 阅读 · 0 评论 -
STL常用查找算法
文章目录常用查找算法find算法 查找元素find_if算法 条件查找adjacent_find算法 查找相邻重复元素binary_search算法 二分查找法count算法 统计元素出现次数count_if算法 统计元素出现次数常用查找算法find算法 查找元素@param beg 容器开始迭代器@param end 容器结束迭代器@param value 查找的元素@return 返回查找元素的位置find(iterator beg, iterator end, value)find原创 2020-06-20 09:53:50 · 4055 阅读 · 0 评论 -
STL常用遍历算法
文章目录算法概述常用遍历算法for_each:transform:算法概述算法主要是由头文件 组成。是所有STL头文件中最大的一个,其中常用的功能涉及到比较,交换,查找,遍历,复制,修改,反转,排序,合并等…体积很小,只包括在几个序列容器上进行的简单运算的模板函数. 定义了一些模板类,用以声明函数对象。常用遍历算法遍历算法 遍历容器元素@param beg 开始迭代器@param end 结束迭代器@param _callback 函数回调或者函数对象@return 函数对象f原创 2020-06-20 09:53:32 · 4117 阅读 · 0 评论 -
STL算法——函数对象适配器
函数适配器bind1st bind2nd现在我有这个需求 在遍历容器的时候,我希望将容器中的值全部加上100之后显示出来,怎么做?我们直接给函数对象绑定参数 编译阶段就会报错for_each(v.begin(), v.end(), bind2nd(myprint(),100));如果我们想使用绑定适配器,需要我们自己的函数对象继承binary_function或者 unary_function根据我们函数对象是一元函数对象 还是二元函数对象class MyPrint :public bina原创 2020-06-20 09:53:07 · 4075 阅读 · 0 评论 -
STL算法——内建函数对象
3 内建函数对象STL内建了一些函数对象。分为:算数类函数对象 , 关系运算类函数对象,逻辑运算类仿函数。这些仿函数所产生的对象,用法和一般函数完全相同,当然我们还可以产生无名的临时对象来履行函数功能。使用内建函数对象,需要引入头文件 #include<functional>。6个算数类函数对象,除了negate是一元运算,其他都是二元运算。template<class T> T plus<T>//加法仿函数template<class T> T mi原创 2020-06-20 09:52:46 · 4132 阅读 · 0 评论 -
STL算法——谓词讲解
2 谓词谓词是指普通函数或重载的operator()返回值是bool类型的函数对象(仿函数)。如果operator接受一个参数,那么叫做一元谓词,如果接受两个参数,那么叫做二元谓词,谓词可作为一个判断式。class GreaterThenFive{public: bool operator()(int num) { return num > 5; }};//一元谓词void test01(){ vector<int> v; for (int i = 0; i原创 2020-06-20 09:52:26 · 4222 阅读 · 0 评论 -
STL算法——函数对象(仿函数)
1 函数对象重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载“()”操作符,使得类对象可以像函数那样调用。注意:1.函数对象(仿函数)是一个类,不是一个函数。2.函数对象(仿函数)重载了”() ”操作符使得它可以像函数一样调用。分类:假定某个类有一个重载的operator(),而且重载的operator()要求获取一个参数,我们就将这个类称为“一元仿函数”(unary functor);相反,如果原创 2020-06-20 09:52:11 · 4115 阅读 · 0 评论 -
C++ list列表删除匹配元素(erase)
匹配中间一片元素进行删除#include <list>#include <iostream>#include <iterator>using namespace std;int main( ){ list<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for (auto &i : c) { cout << i << " "; } cout原创 2020-05-11 09:17:41 · 6729 阅读 · 0 评论 -
C++学习之路—— STL标准模板库概述
例题1:将课程中讲过的vector容器和list容器的操作都使用一遍。代码如下:template <typename T> void VectorShow(vector<T> v){ cout << "使用模板函数打印容器所有元素!" << endl; for (int i = 0; i < v.size(); i++) { ...原创 2020-02-12 20:55:22 · 3954 阅读 · 0 评论 -
C++迭代器 iterator详解
要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。迭代器按照定义方式分成以下四种。正向迭代器,定义方法如下:容器类名::iterator 迭代器名;常量正向迭代器,定义方法如下:容器类名::cons...原创 2020-04-05 19:31:26 · 7982 阅读 · 0 评论 -
STL算法——概述及算法概览
原创 2020-04-04 10:36:30 · 3511 阅读 · 2 评论