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;
}

原文链接: https://www.cnblogs.com/Salty-Fish/p/13217853.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    STL:unqiue

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/361136

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午1:40
下一篇 2023年3月2日 下午1:40

相关推荐