1、find();

find()算法的作用是在指定的一段序列中查找某个数,包含三个参数,前两个参数是表示元素范围的迭代器,第三个参数是要查找的值。

例:fing(vec.begin(), vec.end(), val); //在vec中查找值val,该val可以是数字、字符串。

2、count();

count()算法的作用是查看给定序列中给定值出现的次数,同样包含三个参数,前两个参数是表示元素范围的迭代器,第三个参数是要查找的值。

例:count(vec1.begin(), vec1.end(), 2);//在vec1中查看2出现的次数。

3、find_if();

find_if()算法的作用是在输入序列中查找第一个满足条件的元素,返回第一个指向满足条件的元素的迭代器。

例:auto wc = find_if(vec.begin(), vec.end(), [sz](const string &a){return a.size>=sz;});//其中sz为在使用find_if的函数内部定义的局部变量。

上诉算法得到的是第一个指向长度不小于sz的元素的迭代器,如果没有则返回vec.end();

4、count_if();

  预先定义比较函数;

bool GreatThree(int num)
{
return num > ;
}
int num = count_if(v1.begin(), v1.end(), GreatThree);

5、for_each();

for_each()算法的主要作用是打印输出序列。接收三个参数,前两个为打印元素的范围,后一个为一个可调用对象。

例:for_each(wc, vec.end(), [](const string &s){cout << s << " ";});

cout << endl;

上述程序的作用就是打印输出序列中从wc到vec.end()中的元素。

6、adjacent_find();

  查找重复元素,并返回第一个出现的位置。

  例:vector<int>::iterator it = adjacent_find(vec.begin(), vec.end());

7、binary_search();

  在有序序列中查找,找到后返回 true,注意,在无序序列中不可使用。

  例:bool bFind = binary_search(setInt.begin(), setInt.end(), 5);

排序

8、merge(); 或者 sort(); 形式类似。

  合并两个有序序列,放到另一个序列中。

int main()
{
// v1 + v2 = v3
vector<int> v1, v2, v3;
v1.push_back();
v1.push_back();
v1.push_back(); v2.push_back();
v2.push_back();
v2.push_back(); v3.resize();
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
//输出 1 2 3 4 5 6 7 8 9
vector<int>::iterator it;
for (it = v3.begin(); it != v3.end(); ++it)
{
cout << *it << endl;
}
system("pause");
return ;
}

9、random_shuffle()

  随机打乱顺序,也可应用于字符串。

  例:random_shuffle(v1.begin(), v1.end());

 10、reverse()

  倒序输出。

  reverse(v1.begin(), v1.end());

 拷贝替换

11、copy()

  copy(v1.begin(), v1.end(), v3.begin());

12、replace();  replace_if(); 

  replace(v1.begin(), v1.end(), 3, 8);//把容器v1中所有值为 3 的元素,替换为 8 。

bool greaterEqual5(int &n)
{
return n >= ;
}
// 容器中所有 满足条件的都替换为 8
replace_if(v1.begin(), v1.end(), greaterEqual5, );

 

C++(五十一) — 容器中常见算法(查找、排序、拷贝替换)的更多相关文章

  1. JS中常见算法问题

    JS中常见算法问题 1. 阐述JS中的变量提升(声明提前) 答:将所有的变量提升当当前作用域的顶部,赋值留在原地.意味着我们可以在某个变量声明前就使用该变量. 虽然JS会进行变量提升,但并不会执行真正 ...

  2. js中常见算法

    一.面试80%都要问的数组去重 数组去重的方式有多种,其实面试中主要是想靠对对象的理解.还记得我第一次去面试的时候,去重的时候用了2个for循环. //1循环一次 var arr1 = [1,2,3, ...

  3. Java 中常见的各种排序算法汇总

    首先,Java中自已是有排序的 说明:(1)Arrays类中的sort()使用的是“经过调优的快速排序法”;(2)比如int[],double[],char[]等基数据类型的数组,Arrays类之只是 ...

  4. JavaScript 面试中常见算法问题详解

    1.阐述下 JavaScript 中的变量提升 所谓提升,顾名思义即是 JavaScript 会将所有的声明提升到当前作用域的顶部.这也就意味着我们可以在某个变量声明前就使用该变量,不过虽然 Java ...

  5. [持续补充]开发过程中常见bug查找思路

    文件夹下载不下来或者无法访问,很多时候是因为没有该文件夹的权限,或者没有将该文件夹挂载到对应docker下. 远程服务器和本地服务器测试结果不同,需要排查代码是否是git上同一版本的代码. 代码相同, ...

  6. 算法——查找排序相关面试题和leetcode使用

    1.给两个字符串s和t,判断t是否为s的重新排列后组成的单词. s = "anagram", t = "nagaram", return true. s = & ...

  7. 集合案例--对ArrayList容器中的内容进行排序

    package com.Set; import java.util.ArrayList; import java.util.Collections; import java.util.Comparat ...

  8. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  9. stl_algorithm算法之排序算法

    排序算法: 注意:容器中必须重载 op< ,排序中stl标准中要求用小于来进行比较. 7.53.sort //全排序. 7.54.stable_sort //稳定排序.两个或两个以上的相邻且相等 ...

随机推荐

  1. squid4

    主机上的squid一直是傻瓜型使用,yum安装.默认配置.千年不动.突然漏扫出来3.X版本不能用了,搜了下,得升4.神奇的发现centos7的源(阿里源)里面竟然最高只有3.网上搜使用yum装的也都是 ...

  2. 使用抓包工具将抓到的接口存放Jmeter中

    1. jmeter工作台新增 HTTP代理服务器.端口设置为:8888 2. 抓包工具上面设置代理服务器地址 3.代理服务器未启动时,抓包工具界面显示无法联网. 4.在Jmeter中点击[启动]HTT ...

  3. Centos7根据yum源安装指定版本docker

    yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mi ...

  4. lnmp+discuz使用redis缓存(待进一步研究)

    一直说Redis.Redis缓存.一直不清楚怎么用.于是花点时间研究了一下,但是还没搞懂.先把大概内容记录一下,待后续继续学习 1.首先部署lnmp环境,这个我的博客有些,请自行搜索 2.给php添加 ...

  5. npm package

    lodash JavaScript 实用工具库,提供一致性,模块化,性能和配件等功能 用npm-run自动化任务 Express 4.x API 中文手册 Handlebars.js 模板引擎 使用n ...

  6. 转 python2 与 python3 的编码

    原文链接:https://blog.csdn.net/xufive/article/details/102726739 引文如下: 无论是py2还是py3,都使用unicode作为内存编码,简称内码. ...

  7. Linux磁盘空间不足

    Linux磁盘空间不足 描述:zabbix报警磁盘空间不足 1.登录服务器,查看磁盘空间 2.筛选空间占用的文件 层层筛选 3.将没用的文件删除 rm -f /opt/export/log/np_se ...

  8. Python监听键盘和鼠标事件

    我们可以利用windows提供的api函数来实现对系统键盘事件和鼠标事件的监听,主要利用的是SetWindowsHookEx函数,这个函数可以允许调用者传入一个钩子函数也叫回调函数,当指定的事件发生时 ...

  9. Swagger2生成后台的API文档

    添加依赖: <!--Swagger2API生成--> <dependency> <groupId>io.springfox</groupId> < ...

  10. netcore 版本 切换 sdk

    https://docs.microsoft.com/zh-cn/dotnet/core/tools/global-json