1. #include<iostream>
  2. #include<algorithm>
  3. usingnamespace std;
  4. /**< unique函数的算法思想 */
  5. vector<int>::iterator uniqueElements(vector<int>::iterator begPos,vector<int>::iterator endPos)
  6. {
  7. auto currPos = begPos +1;
  8. while(currPos != endPos)
  9. {
  10. if(*begPos !=*currPos)
  11. *(++begPos)=*(currPos++);
  12. else
  13. ++currPos;
  14. }
  15. return begPos+1;
  16. }
  17. int main()
  18. {
  19. vector<int> intVector;
  20. for(int i =0; i <20;++i)
  21. {
  22. intVector.push_back(rand()%10);
  23. }
  24. for(auto val : intVector)
  25. {
  26. cout << val <<" ";
  27. }
  28. cout << endl;
  29. sort(intVector.begin(), intVector.end());
  30. for(auto val : intVector)
  31. {
  32. cout << val <<" ";
  33. }
  34. cout << endl;
  35. auto end_unique = unique(intVector.begin(), intVector.end());
  36. /**< 可以查看算法,unique并不是简单的将重复的元素放置到最后面去 */
  37. for(vector<int>::iterator it = intVector.begin(); it != intVector.end();++it)
  38. {
  39. if(it == end_unique)
  40. cout <<"##";
  41. cout <<*it <<" ";
  42. }
  43. cout << endl;
  44. intVector.erase(end_unique,intVector.end());
  45. for(auto val:intVector )
  46. cout << val <<" ";
  47. cout << endl;
  48. return0;
  49. }

 

algorithm之unique的更多相关文章

  1. STL中unique的使用

    作用 unique函数可以删除有序数组中的重复元素,即去重(并不是真正的删除,后面会讲) 定义在头文件<algorithm>中 函数原型 1.只有两个参数,且参数类型都是迭代器: iter ...

  2. 去重函数unique,sort,erase的应用

    std::unique 一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即"删除"序列中所有相邻的重复元素(只保留一个).此处的删除,并不 是真的删除,而是 ...

  3. vector去重--unique

    具体实现见中间源码 function template <algorithm> std::unique equality (1) template <class ForwardIte ...

  4. C++算法接口使用参考

    C++算法接口参考 算法参考:[algorithm] 编译:g++ -std=c++11 xxx_algorithm.cpp 运行:./a.out 1.保持原序列运算 all_of template ...

  5. STL中算法分类

    操作对象 直接改变容器的内容 将原容器的内容复制一份,修改其副本,然后传回该副本 功能: 非可变序列算法 指不直接修改其所操作的容器内容的算法 计数算法        count.count_if 搜 ...

  6. 01--STL算法(算法基础)

    一:算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL头文件中 ...

  7. C++复习:STL之算法

    算法 1算法基础 1.1算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm> ...

  8. C++STL 算法

    算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL头文件中最大的一个,其 ...

  9. STL 算法介绍

    STL 算法介绍 算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成.        <algorithm ...

随机推荐

  1. 【费用流】【网络流24题】【P1251】 餐巾计划问题

    Description 一个餐厅在相继的 \(N\) 天里,每天需用的餐巾数不尽相同.假设第 \(i\) 天需要 \(r_i\)块餐巾.餐厅可以购买新的餐巾,每块餐巾的费用为 \(p\) 分;或者把旧 ...

  2. 音视频处理之FFmpeg+SDL视频播放器20180409

    一.FFmpeg视频解码器 1.视频解码知识 1).纯净的视频解码流程 压缩编码数据->像素数据. 例如解码H.264,就是“H.264码流->YUV”. 2).一般的视频解码流程 视频码 ...

  3. 从新浪JS服务器获得股票和股指深度行情(.NET)

    当我们需要通过网络来自动获取股指或股票的深度行情时,一般有以下两种方法可以获得.目前除了使用Python进行爬虫获取(需要解析html获得)外还可以通过新浪提供的JS行情服务器获得,本文采用的是后者( ...

  4. python中的常用模块(2)

    在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件), 经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径 ...

  5. [转]windows下安装python MySQLdb及问题解决

    转自 https://blog.csdn.net/ping523/article/details/54135228#commentBox 之前按照网络上搜罗的教程安装了python-mysql(1.2 ...

  6. 科学计算三维可视化---Mlab基础(鼠标选取交互操作)

    一:鼠标选取介绍 二:选取红色小球分析 相关方法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.小球场景初始化建立 import numpy as np from maya ...

  7. PHP常见的字符串方法

    PHP语言中的字符串函数也是一个比较易懂的知识.今天我们就为大家总结了将近12种PHP字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的PHP知识库.   1.查找字符位置函数 strpos($s ...

  8. Jmeter javaRequest插件开发

    1. 适用场景 Jmeter工具当前支持的协议或协议所支持的传输方式及传输内容不能满足当前项目的测试要求时,就需要根据实际要求手动编写java测试代码(实现对应的Jmeter规范),以插件方式加载到J ...

  9. jQuery UI dialog 使用记录

    1 属性 1.11 autoOpen ,这个属性为true的时候dialog被调用的时候自动打开dialog窗口.当属性为false的时候,一开始隐藏窗口,知道.dialog("open&q ...

  10. 一个菜鸟的ASP.NET观光路线图

           作为一个成长的"菜鸟".我的习惯是,每过一个阶段,都对自己的知识体系进行一次概括. 这篇博文是一个总结帖,我将把我的学到的东西,按照一定顺序串联在一起.        ...