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. Postman 设置变量

  2. Datalogic 雕刻机

    选型需要考虑: 1. 材料 2. 材质 3. 内容 4. 范围 选择镜头 5. 厚度 6. 效率 7. 效果 脚本代码: // COM 串口设置 const N_COM = "COM2&qu ...

  3. oracle全库查找是否有某个值

    在scott用户下面,搜索含有'要找的值'的数据的表和字段穷举法: declare v_Sql ); v_count number; begin for xx in (select t.OWNER, ...

  4. 【剑指offer】链表中的倒数第k个结点

    输入一个链表,输出该链表中倒数第k个结点. 分析: 定义两个结点p1和p2都指向头节点,p1先走k-1步,然后p1和p2一起走,当p1走到链表尾部时,p2指向的结点就是倒数第k个结点 遍历一遍链表即可 ...

  5. Python实现字典树

    字典树,又称单词查找树,Trie 树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是:利用字符串 ...

  6. STM8L052C6T6液晶LCD驱动过程

    首先还是必要的说明,鄙人经验有限,如发现问题还请不吝赐教,反馈到邮箱mr.li.ming@qq.com 使用的液晶屏 单片机引脚 液晶的COM1-COM4分别对应单片机LCD_COM0-LCD_COM ...

  7. SQL Server日志处理及安全访问

    1.点SQL SERVER错误日志,右键,配置,限定错误日志的数目,比如6个 限制日志增长数量 2.然后运行命令: EXEC sp_cycle_errorlog ; 这个命令的作用是将当前日志归档,然 ...

  8. vue路由懒加载及组件懒加载

    一.为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题. 二.定义 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载. 三.使用 常用的懒加载方式 ...

  9. 论文笔记:DeepCF

    Abstract 推荐系统可以看作用户和物品的匹配问题,不过user以及item两者的语义空间差异太大,直接匹配不太符合实际.主流的改进CF的方法有两类:基于表示学习的CF方法以及基于函数学习的表示方 ...

  10. Redis cluster的核心原理分析

    一.节点间的内部通信机制 1.基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间 ...