需要注意的是find_first_of和find前者是集合中的任意元素对应即可,后者则是完全符合条件

#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <deque>
#include <string>using namespace std;class Hero
{private:string name;// 名字string star;// 星宿string nickname;// 绰号
public:Hero(string star, string nickname, string name){this->star = star;this->nickname = nickname;this->name = name;};bool operator==(int a){return this->name.length() == a;};string getName(){return this->name;}
};int main()
{vector<Hero> vecShuiHu;vecShuiHu.pushback(Hero("天魁星", "呼保义", "宋江")); vecShuiHu.pushback(Hero("天罡星", "玉麒麟", "卢俊义")); vecShuiHu.pushback(Hero("天机星", "智多星", "吴用")); vecShuiHu.pushback(Hero("天闲星", "入云龙", "公孙胜")); vecShuiHu.pushback(Hero("天勇星", "大刀", "关胜")); vecShuiHu.pushback(Hero("天雄星", "豹子头", "林冲"));vecShuiHu.pushback(Hero("天猛星", "霹雳火", "秦明")); vecShuiHu.pushback(Hero("天威星", "双鞭", "呼延灼")); vecShuiHu.pushback(Hero("天英星", "小李广", "花荣")); vecShuiHu.pushback(Hero("天贵星", "小旋风", "柴进")); vecShuiHu.pushback(Hero("天富星", "扑天雕", "李应")); vecShuiHu.pushback(Hero("天满星", "美髯公", "朱仝"));vecShuiHu.pushback(Hero("天孤星", "花和尚", "鲁智深")); vecShuiHu.pushback(Hero("天伤星", "行者", "武松")); vecShuiHu.pushback(Hero("天立星", "双枪将", "董平")); vecShuiHu.pushback(Hero("天捷星", "没羽箭", "张清")); vecShuiHu.pushback(Hero("天暗星", "青面兽", "杨志")); vecShuiHu.pushback(Hero("天佑星", "金枪手", "徐宁"));vecShuiHu.pushback(Hero("天空星", "急先锋", "索超")); vecShuiHu.pushback(Hero("天速星", "神行太保", "戴宗")); vecShuiHu.pushback(Hero("天异星", "赤发鬼", "刘唐")); vecShuiHu.pushback(Hero("天杀星", "黑旋风", "李逵")); vecShuiHu.pushback(Hero("天微星", "九纹龙", "史进")); vecShuiHu.pushback(Hero("天究星", "没遮拦", "穆弘"));vecShuiHu.pushback(Hero("天退星", "插翅虎", "雷横")); vecShuiHu.pushback(Hero("天寿星", "混江龙", "李俊")); vecShuiHu.pushback(Hero("天剑星", "立地太岁", "阮小二")); vecShuiHu.pushback(Hero("天竟星", "船火儿", "张横")); vecShuiHu.pushback(Hero("天罪星", "短命二郎", "阮小五")); vecShuiHu.pushback(Hero("天损星", "浪里白条", "张顺"));vecShuiHu.pushback(Hero("天败星", "活阎罗", "阮小七")); vecShuiHu.pushback(Hero("天牢星", "病关索", "杨雄")); vecShuiHu.pushback(Hero("天慧星", "拚命三郎", "石秀")); vecShuiHu.pushback(Hero("天暴星", "两头蛇", "解珍")); vecShuiHu.pushback(Hero("天哭星", "双尾蝎", "解宝")); vecShuiHu.pushback(Hero("天巧星", "浪子", "燕青"));vecShuiHu.pushback(Hero("地魁星", "神机军师", "朱武")); vecShuiHu.pushback(Hero("地煞星", "镇三山", "黄信")); vecShuiHu.pushback(Hero("地勇星", "病尉迟", "孙立")); vecShuiHu.pushback(Hero("地杰星", "丑郡马", "宣赞")); vecShuiHu.pushback(Hero("地雄星", "井木犴", "郝思文")); vecShuiHu.pushback(Hero("地威星", "百胜将", "韩滔"));vecShuiHu.pushback(Hero("地英星", "天目将", "彭玘")); vecShuiHu.pushback(Hero("地奇星", "圣水将", "单廷珪")); vecShuiHu.pushback(Hero("地猛星", "神火将", "魏定国")); vecShuiHu.pushback(Hero("地文星", "圣手书生", "萧让")); vecShuiHu.pushback(Hero("地正星", "铁面孔目", "裴宣")); vecShuiHu.pushback(Hero("地阔星", "摩云金翅", "欧鹏"));vecShuiHu.pushback(Hero("地阖星", "火眼狻猊", "邓飞")); vecShuiHu.pushback(Hero("地强星", "锦毛虎", "燕顺")); vecShuiHu.pushback(Hero("地暗星", "锦豹子", "杨林")); vecShuiHu.pushback(Hero("地轴星", "轰天雷", "凌振")); vecShuiHu.pushback(Hero("地会星", "神算子", "蒋敬")); vecShuiHu.pushback(Hero("地佐星", "小温侯", "吕方"));vecShuiHu.pushback(Hero("地佑星", "赛仁贵", "郭盛")); vecShuiHu.pushback(Hero("地灵星", "神医", "安道全")); vecShuiHu.pushback(Hero("地兽星", "紫髯伯", "皇甫端")); vecShuiHu.pushback(Hero("地微星", "矮脚虎", "王英")); vecShuiHu.pushback(Hero("地慧星", "一丈青", "扈三娘")); vecShuiHu.pushback(Hero("地暴星", "丧门神", "鲍旭"));vecShuiHu.pushback(Hero("地然星", "混世魔王", "樊瑞")); vecShuiHu.pushback(Hero("地猖星", "毛头星", "孔明")); vecShuiHu.pushback(Hero("地狂星", "独火星", "孔亮")); vecShuiHu.pushback(Hero("地飞星", "八臂哪吒", "项充")); vecShuiHu.pushback(Hero("地走星", "飞天大圣", "李衮")); vecShuiHu.pushback(Hero("地巧星", "玉臂匠", "金大坚"));vecShuiHu.pushback(Hero("地明星", "铁笛仙", "马麟")); vecShuiHu.pushback(Hero("地进星", "出洞蛟", "童威")); vecShuiHu.pushback(Hero("地退星", "翻江蜃", "童猛")); vecShuiHu.pushback(Hero("地满星", "玉幡竿", "孟康")); vecShuiHu.pushback(Hero("地遂星", "通臂猿", "侯健")); vecShuiHu.pushback(Hero("地周星", "跳涧虎", "陈达"));vecShuiHu.pushback(Hero("地隐星", "白花蛇", "杨春")); vecShuiHu.pushback(Hero("地异星", "白面郎君", "郑天寿")); vecShuiHu.pushback(Hero("地理星", "九尾龟", "陶宗旺")); vecShuiHu.pushback(Hero("地俊星", "铁扇子", "宋清")); vecShuiHu.pushback(Hero("地乐星", "铁叫子", "乐和")); vecShuiHu.pushback(Hero("地捷星", "花项虎", "龚旺"));vecShuiHu.pushback(Hero("地速星", "中箭虎", "丁得孙")); vecShuiHu.pushback(Hero("地镇星", "小遮拦", "穆春")); vecShuiHu.pushback(Hero("地嵇星", "操刀鬼", "曹正")); vecShuiHu.pushback(Hero("地魔星", "云里金刚", "宋万")); vecShuiHu.pushback(Hero("地妖星", "摸着天", "杜迁")); vecShuiHu.pushback(Hero("地幽星", "病大虫", "薛永"));vecShuiHu.pushback(Hero("地伏星", "金眼彪", "施恩")); vecShuiHu.pushback(Hero("地僻星", "打虎将", "李忠")); vecShuiHu.pushback(Hero("地空星", "小霸王", "周通")); vecShuiHu.pushback(Hero("地孤星", "金钱豹子", "汤隆")); vecShuiHu.pushback(Hero("地全星", "鬼脸儿", "杜兴")); vecShuiHu.pushback(Hero("地短星", "出林龙", "邹渊"));vecShuiHu.pushback(Hero("地角星", "独角龙", "邹润")); vecShuiHu.pushback(Hero("地囚星", "旱地忽律", "朱贵")); vecShuiHu.pushback(Hero("地藏星", "笑面虎", "朱富")); vecShuiHu.pushback(Hero("地平星", "铁臂膊", "蔡福")); vecShuiHu.pushback(Hero("地损星", "一枝花", "蔡庆")); vecShuiHu.pushback(Hero("地奴星", "催命判官", "李立"));vecShuiHu.pushback(Hero("地察星", "青眼虎", "李云")); vecShuiHu.pushback(Hero("地恶星", "没面目", "焦挺")); vecShuiHu.pushback(Hero("地丑星", "石将军", "石勇")); vecShuiHu.pushback(Hero("地数星", "小尉迟", "孙新")); vecShuiHu.pushback(Hero("地阴星", "母大虫", "顾大嫂")); vecShuiHu.pushback(Hero("地刑星", "菜园子", "张青"));vecShuiHu.pushback(Hero("地壮星", "母夜叉", "孙二娘")); vecShuiHu.pushback(Hero("地劣星", "活闪婆", "王定六")); vecShuiHu.pushback(Hero("地健星", "险道神", "郁保四")); vecShuiHu.pushback(Hero("地耗星", "白日鼠", "白胜")); vecShuiHu.pushback(Hero("地贼星", "鼓上蚤", "时迁")); vecShuiHu.pushback(Hero("地狗星", "金毛犬", "段景住"));deque<int> ideq;ideq.push_back(3);// 姓名为三个字ideq.push_back(4);// 姓名为四个字ideq.push_back(5);// 姓名为五个字vector<Hero>::iterator pos;// 寻找姓名长度为3,4,5中任意一个的第一个pos = find_first_of(vecShuiHu.begin(), vecShuiHu.end(), ideq.begin(), ideq.end());if (pos != vecShuiHu.end()){cout << "找到了,位置在:" << distance(vecShuiHu.begin(), pos) << "\t" << pos->getName() << endl;}else{cout << "没有找到" << endl;}pos = find_first_of(vecShuiHu.begin(), vecShuiHu.end(), ideq.begin(), ideq.end(), [](Hero h,int a)->bool{return a == h.getName().length(); });// ideq.begin(), ideq.end()区间对应的是aif (pos != vecShuiHu.end()){cout << "找到了,位置在:" << distance(vecShuiHu.begin(), pos) <<"\t"<< pos->getName() << endl;}else{cout << "没有找到" << endl;};return EXIT_SUCCESS;
}

C++STL算法 find_first_of根据梁山好汉的姓名长度进行查找相关推荐

  1. 【C++】C++11 STL算法(一):非修改序列操作(Non-modifying sequence operations)

    目录 一.all_of.any_of.none_of: 1.官方说明 2.谓词 3.STL算法对谓词的说明 4.谓词的五种模式 5.all_of (C++ 11) 6.any_of (C++ 11) ...

  2. STL算法algorithm,

    2019独角兽企业重金招聘Python工程师标准>>> STL算法部分主要由头文件<algorithm>,<numeric>,<functional&g ...

  3. c++STL算法基础

    STL算法基础 算法概述 STL中算法分类 查找算法(13个) adjacent_find binary_search count count_if equal_range find find_end ...

  4. STL算法学习[转]

    原文:http://www.cppblog.com/mzty/archive/2007/03/14/19819.html STL算法学习,小结如下: 前提: 下载stl源码:  http://www. ...

  5. 用知识图谱打开梁山好汉一百单八将

    说起<水浒传>大家一定不会陌生,<水浒传>是一部以描写古代农民起义为题材的长篇小说,全书描写北宋末年以宋江为首的108位好汉在梁山聚义,之后接受招安.四处征战的故事.它的一大看 ...

  6. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  7. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  8. 第十四章 梁山好汉中谁最惹人爱

    梁山好汉中谁最惹人爱 就帅气而言,武松比不上花荣和燕青,但武松的魅力不一般,超级强,无法挡,可谓人见人爱,动物也不例外. 第一个爱上武松的是柴进.大家先不要误会,这儿的"爱"是广义 ...

  9. 大顶堆删除最大值_C++|使用STL算法创建、调整、输出最大堆、最小堆

    最大堆(又叫大根堆.大顶堆)和最小堆是二叉堆的两种形式,一类很重要的数据结构,如用于堆排序等. 最小堆:根结点的键值是所有堆结点键值中最小者,且每个结点的值都比其孩子的值小. 最大堆:根结点的键值是所 ...

  10. C++语言基础 —— STL —— 算法

    [概述] STL 是指 C++ 标准模板库,是 C++ 语言标准中的重要组成部分,其以模板类和模版函数的形式提供了各种数据结构与算法的精巧实现,如果能充分使用 STL,可以在代码空间.执行时间.编码效 ...

最新文章

  1. 2016-1-29 图解HTTP(04)
  2. golang获取程序运行路径
  3. 【生活资讯】5款好用的生活学习类APP
  4. SSH服务-SSH秘钥对登陆
  5. 以太坊2.0存款合约地址余额28.87万ETH,进度达55%
  6. srs流媒体服务器windows_基于SRS构建的直播平台的监控系统的搭建思路与实现方法...
  7. linux能上ps吗,在linux上使用ps(转载)
  8. 退出所有循环_探索未知种族之osg类生物---呼吸分解之事件循环三
  9. 易被忽视的贝叶斯概率
  10. 结合插件实现【IDM+百度网盘】高速下载
  11. 日历控件--MaterialCalendarView 详解
  12. c语言中getnumber函数作用,C语言函数是什么
  13. [BTS] Unable to create the transform
  14. C# Span 入门
  15. VMware中设置处理器数量的问题
  16. 【七天实战微信小程序】任务清单
  17. 【数据分析】电商平台入驻商用户画像分析
  18. ENDNOTE使用方法
  19. Symantec更新服务器
  20. Java实验——定义一个类,该类中包含以下几个方法(静态):实现两个字符串数组的逆序排序,输出结果为字符串数组;求两个整形数组的交集;求两个浮点型数组的并集;

热门文章

  1. 数据库表的关联关系, 一对一, 一对零或一, 多对多
  2. 康托尔集的物理意义1.2
  3. java代码生成springdao_可一键生成dao、表、controller等几十种的代码生成器源码分享...
  4. 项目【QT5.13频谱分析软件】(一)——开篇介绍
  5. 转 Html转pdf的工具——wkhtmltopdf
  6. rmats2sashimiplot:可视化rmats的可变剪切结果
  7. catboost原理
  8. FBReader 探究
  9. 基于IPv6的5G专网终端身份认证技术与应用
  10. Kattis- 3D Printed Statues