STL unique

*/-->

pre.src {background-color: Black; color: White;}

pre.src {background-color: Black; color: White;}

STL unique

unique 删除相邻之间重复的元素

int main(void) {
    vector<int> v;
    v.push_back(3);
    v.push_back(3);
    v.push_back(3);
    v.push_back(1);
    v.push_back(5);

    sort(v.begin(),v.end());

    vector<int>::iterator it = unique(v.begin(), v.end());
    v.erase(it, v.end());
    int len = v.size();
    for (int i = 0; i < len; i++) {
        printf("%d\n", v[i]);
    }   // 1 3 5

    return 0;
}
int main(void) {
    vector<int> v;
    v.push_back(3);
    v.push_back(3);
    v.push_back(3);
    v.push_back(1);
    v.push_back(5);

    sort(v.begin(),v.end());

    vector<int> new_v;
    unique_copy(v.begin(), v.end(), back_inserter(new_v));
    int len = new_v.size();
    for (int i = 0; i < len; i++) {
        printf("%d\n", new_v[i]);
    }   // 1 3 5

    return 0;
}
时间: 2024-10-24 18:50:34

STL unique的相关文章

c++ STL unique , unique_copy函数

一.unique函数 类属性算法unique的作用是从输入序列中"删除"全部相邻的反复元素. 该算法删除相邻的反复元素.然后又一次排列输入范围内的元素,而且返回一个迭代器(容器的长度没变,仅仅是元素顺序改变了),表示无反复的值范围得结束. // sort words alphabetically so we can find the duplicates sort(words.begin(), words.end()); /* eliminate duplicate words: *

leetcode-Contains Duplicate,STL unique,unique_copy等函数的使用

leetcode题目描述: Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct. 解题思路: 本题要求判断一个数组中是否有重复元素,

[学习][STL]unique和erase

//在vector中的应用#include <iostream> #include<cstdio> #include<vector> #include<algorithm> using namespace std; vector<int> a;vector<int>::iterator p; int main() { int n;scanf("%d",&n); for(int i=1;i<=n;i++

Understand the Qt containers(有对应表)

Container classes are one of the cornerstones of object-oriented programming, invaluable tools that free us from having to permanently think about memory management. Qt comes with its own set of container classes, closely modeled after those in the S

LA 3263 (欧拉定理)

欧拉定理题意: 给你N 个点,按顺序一笔画完连成一个多边形 求这个平面被分为多少个区间 欧拉定理 : 平面上边为 n ,点为 c 则 区间为 n + 2 - c: 思路: 先扫,两两线段的交点,存下来,有可能会有重复点, 用STL unique 去重 在把每个点判断是否在线段上,有,则会多出一条线段(不包括端点的点) 这样就得出结果了 O(n * n )   /// 这题还有点卡精度, 1e-11 WA, 1e-9 A了--. #include<iostream> #include<cs

STL 去重 unique

一.unique函数 类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束. 1 // sort words alphabetically so we can find the duplicates 2 sort(words.begin(), words.end()); 3 /* eliminate duplicate words: 4 *

C++ STL算法系列 unique

类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束. 在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留一个),其实它并不真正把重复的元素删除,是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址,因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下

数据离散化 ( 以及 stl 中的 unique( ) 的用法 )+ bzoj3289:Mato的文件管理

http://blog.csdn.net/gokou_ruri/article/details/7723378 ↑惯例Mark大神的博客 bzoj3289:Mato的文件管理 线段树求逆序对+莫队,但是数据量50000却没有给出范围,既然求逆序对,那么我们关注的只是数据之间的相对大小,此时我们可以把这50000个数据进行简化...嗯看大神的博客就明白了不需要多解释什么了..   下面是博客中未授权截取的大神的代码板子....不过都是自己看应该也没什么吧..... sort(sub_a,sub_a

STL vector,deque,list

一.vector可变长的动态数组必须包含头文件 #include <vector>支持随机访问迭代器• 根据下标随机访问某个元素时间为常数• 在尾部添加速度很快• 在中间插入慢所有STL算法 都能对vector操作 构造函数初始化:vector();无参构造函数, 将容器初始化成空的vector(int n);将容器初始化成有n个元素vector(int n, const T & val);假定元素类型是T, 将容器初始化成有n个元素, 每个元素的值都是valvector(iterat