int a[] = {, , , , , ,  ,};
std::vector<int> vec(a, a+sizeof(a)/sizeof(int) );
std::sort(vec.begin(), vec.end() );
vector<int>::iterator iter_end;
iter_end = std::unique(vec.begin(), vec.end() );
vec.erase(iter_end, vec.end() );

对如下函数一一说明:

sort:从小到大排序。程序执行到sort后的结果:

unique:元素去重,unique返回重复元素开始的位置,并且会改变原vec的向量值。程序执行到unique后的结果(输出此时的Vec):

earse:删除元素。程序执行到erase后的结果(输出此时的Vec):

完成对vector的去重和排序

另外说明vertor的几个属性

capacity:系统现在给vector分配的内存大小

size:vector现有的数据大小

max_size:系统可以给给vector分配的最大容量

// comparing size, capacity and max_size
#include <iostream>
#include <vector> int main ()
{
std::vector<int> myvector; // set some content in the vector:
for (int i=; i<; i++) myvector.push_back(i); std::cout << "size: " << (int) myvector.size() << '\n';
std::cout << "capacity: " << (int) myvector.capacity() << '\n';
std::cout << "max_size: " << (int) myvector.max_size() << '\n';
return ;
}
结果:
size:
capacity:
max_size:

再给个例子补充一下erase的用法:

// vector_erase.cpp
// compile with: /EHsc
#include <vector>
#include <iostream> using namespace std; int main()
{ vector <int> vec;
vector <int>::iterator pos; vec.push_back();
vec.push_back();
vec.push_back();
vec.push_back();
vec.push_back(); cout << "Capacity = " << vec.capacity() << endl;
cout << "vec =";
for (pos = vec.begin(); pos != vec.end(); ++pos)
{
cout << " " << *pos;
}
cout << endl; vec.erase(vec.begin());
cout << "vec = ";
for (pos = vec.begin(); pos != vec.end(); ++pos)
{
cout << " " << *pos;
}
cout << endl; vec.erase(vec.begin() + , vec.begin() + );
cout << "vec = ";
for (pos = vec.begin(); pos != vec.end(); ++pos)
{
cout << " " << *pos;
}
cout << endl;
cout << "Capacity after erase calls = " << vec.capacity() << endl;
}
结果:
Capacity =
vec =
vec =
vec =
Capacity after erase calls = 6
来源:https://msdn.microsoft.com/en-us/library/ceh559x2.aspx

vector中数据进行去重和排序的更多相关文章

  1. vector中数据释放崩溃问题

    struct LINE { char securityID[32]; /*!< 证券代码 */ int64_t dateTime; /*!< 日期时间(日期变化)YYYYMMDDhhmms ...

  2. [转载]EasyUI中数据表格DataGrid添加排序功能

    我们这里演示的是EasyUI数据表格DataGrid从服务器端排序功能,因为觉的本地数据排序没有多大的作用,一般我们DataGrid不会读取全部数据,只会读取当前页的数据,所以本地数据排序也只是对当前 ...

  3. c++map按value排序--将map的pair对保存到vector中,然后写比较仿函数+sort完成排序过程。

    map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行 ...

  4. python中sorted()和set()去重,排序

    前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...

  5. 查漏补缺:Vector中去重

    对于STL去重,可以使用<algorithm>中提供的unique()函数. unique()函数用于去除相邻元素中的重复元素(所以去重前需要对vector进行排序),只留下一个.返回去重 ...

  6. 【转】c++中Vector等STL容器的自定义排序

    如果要自己定义STL容器的元素类最好满足STL容器对元素的要求    必须要求:     1.Copy构造函数     2.赋值=操作符     3.能够销毁对象的析构函数    另外:     1. ...

  7. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  8. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  9. Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV

    Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV – lxw的大数据田地 http://lxw1234.com/archives/2015/09/516.htm Java使用极小 ...

随机推荐

  1. MQTT客户端

    MQTT客户端 最近公司项目中使用到了一个MQTT的协议,用这个通讯协议将嵌入式端收集到的数据接入到物联网中,很是方便的解决了,嵌入式端存储空间小,也解决了用户需要自定义使用这些记录数据的需求.而且相 ...

  2. yii2 shi用modal弹窗 select2搜索框无法使用

    在modal使用begin的时候指定options选项的tabindex为false Modal::begin([ // ...... 'options' => [ 'tabindex' =&g ...

  3. 回顾爬虫的时候的一些小TIPS

    1 json.dumps的时候默认会用ascii 所以在写入文件的时候会需要用到的指令变为json.dumps(a,ensuer_ascii=False),这样将禁止转换为ascii 然后再写入的时候 ...

  4. VIO 初始化小结 - 10.17

    最近几个月忙于博士毕业,找工作一直没有继续更新博客,希望以这一篇开始,每个月能够继续有几篇总结博客. 首先review一下比较著名的vio系统 Tightly coupled EKF: mainly ...

  5. 并发任务管理器AsyncTaskManager

    //-------------------------------------------------------------------------- // // Copyright (c) BUS ...

  6. leetcode-零钱兑换—int溢出

     零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: c ...

  7. 【20180807模拟测试】t1 function

    low逼的我也只能写这样的水题... 题面 对于一个整数,定义 f(x)为他的每个数位的阶乘的乘积.例如 f(135)=1! * 3! * 5! =720.给出一个数 a(可以包含前缀零),a 满足他 ...

  8. MySql优化浅析

    优化点:合理的使用索引,可以大幅度提升sql查询效率,特别查询的表的数据量大的时候,效果明显.一.引言 公司的产品XX出行上线正式运营,随着数据量的变大,司机2000+,日订单1万+,注册乘客26W+ ...

  9. nginx 应用篇

    nginx 信号控制(commanLine) kill singel  pid ps aux|grep nginx nginx 有两个进程,一个 master 一个worker 一个master管理一 ...

  10. 2018科大讯飞AI营销算法大赛全面来袭,等你来战!

    AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...