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. iOS - 在xib中UILabel文字如何换行

    在换行的位置按住Option + Enter键即可换行

  2. Guide of Apache Directory Studio

    Default User and Password admin secret

  3. System.Threading.Timer定时器使用注意事项

    1.定时器不要直接在方法里面定义和赋值,因为方法执行完,方法体内的变量会被GC回收. 有时候我们将timer定义在了方法里面,然后看到timer被执行了几次之后才失效,原因就是GC不一定会立即回收. ...

  4. POJ-动态规划-背包问题模板

    背包问题模板 一.0-1背包 状态:背包容量为j时,求前i个物品所能达到最大价值,设为dp[i][j].初始时,dp[0][j](0<=j<=V)为0,没有物品也就没有价值. 状态转移方程 ...

  5. 【layui】获取layui弹窗的index并关闭

    var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); // 关闭当前laye ...

  6. HashMap、HashTable与ConcurrentHashMap的区别

    1.HashTable与HashMap (1)HashTable和HashMap都实现了Map接口,但是HashTable的实现是基于Dictionary抽象类. (2)在HashMap中,null可 ...

  7. Java操作JSON数据(3)--fastjson操作JSON数据

    fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.本文介绍下fastjs ...

  8. java之spring之初始spring

    1.Spring 在多个框架中起到润滑剂的作用,桥梁的作用,纽带的作用. 2.Spring是一个容器,也是一个对象工厂.帮助程序员创建对象,管理对象. 3.Spring的体系结构: 4.学习sprin ...

  9. 在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

    这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴. Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可 ...

  10. windows上git clone命令速度过慢问题的解决

    在windows上用git clone 命令克隆一个仓库,速度非常的慢,但是浏览器访问github的速度确挺正常的,我也用了翻墙软件(SSR). git设置一下全局代理可以解决这个问题: git co ...