zoukankan      html  css  js  c++  java
  • STL:unqiue

    STL unique

    简介

    用于元素去重,但不会真的删除,可以看作是将相邻的重复元素去除,用后面的不相同的元素补上来。

    因为unique函数是针对相邻重复元素的,所以一般会先进行排序再unique

    函数原型

    iterator unique(iterator it_1,iterator it_2);//去重范围(it_1,it_2)
    iterator unique(iterator it_1,iterator it_2,bool MyFunc);//MyFunc指的是自定义元素是否相等
    //sort怎么用,unique就怎么用
    //PS:unique的返回值是开始重复的第一个元素
    

    例子

    //1. 直接应用
    int main()
    {
    	int a[10]={1,2,2,3,4,5,6,6,7,7};
    	unique(a,a+10);
    	for (int i=0;i<10;i++)
    		cout<<setw(5)<<a[i];
    	return 0;
    }
    /*
    初始数组:1 2 2 3 4 5 6 6 7 7
    去重后的:1 2 3 4 5 6 7 6 7 7
    */
    //2. 真正的删除元素
    int main()
    {
        vector<int> a ={1,2,2,3,4,5,6,6,7,7};
        vector<int>::iterator it_1 = a.begin();
        vector<int>::iterator it_2 = a.end();
        vector<int>::iterator new_end;
        new_end = unique(it_1,it_2); //注意unique的返回值,是重复的第一个元素
        a.erase(new_end,it_2);		//这样就可以直接删了
        for(int i=0;i<a.size();i++)
            cout<<setw(5)<<a[i];
        return 0;
    }
    
  • 相关阅读:
    《数据密集型应用系统设计》读书笔记
    每周总结
    每周总结
    每周总结
    《数据密集型应用系统设计》读书笔记
    每周总结
    《重构》读书笔记
    每周总结
    软件过程与管理知识回顾
    操作系统知识汇总5-6章
  • 原文地址:https://www.cnblogs.com/Salty-Fish/p/13217853.html
Copyright © 2011-2022 走看看