vector中数据进行去重和排序
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中数据进行去重和排序的更多相关文章
- vector中数据释放崩溃问题
struct LINE { char securityID[32]; /*!< 证券代码 */ int64_t dateTime; /*!< 日期时间(日期变化)YYYYMMDDhhmms ...
- [转载]EasyUI中数据表格DataGrid添加排序功能
我们这里演示的是EasyUI数据表格DataGrid从服务器端排序功能,因为觉的本地数据排序没有多大的作用,一般我们DataGrid不会读取全部数据,只会读取当前页的数据,所以本地数据排序也只是对当前 ...
- c++map按value排序--将map的pair对保存到vector中,然后写比较仿函数+sort完成排序过程。
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行 ...
- python中sorted()和set()去重,排序
前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...
- 查漏补缺:Vector中去重
对于STL去重,可以使用<algorithm>中提供的unique()函数. unique()函数用于去除相邻元素中的重复元素(所以去重前需要对vector进行排序),只留下一个.返回去重 ...
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...
- 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV
Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV – lxw的大数据田地 http://lxw1234.com/archives/2015/09/516.htm Java使用极小 ...
随机推荐
- MQTT客户端
MQTT客户端 最近公司项目中使用到了一个MQTT的协议,用这个通讯协议将嵌入式端收集到的数据接入到物联网中,很是方便的解决了,嵌入式端存储空间小,也解决了用户需要自定义使用这些记录数据的需求.而且相 ...
- yii2 shi用modal弹窗 select2搜索框无法使用
在modal使用begin的时候指定options选项的tabindex为false Modal::begin([ // ...... 'options' => [ 'tabindex' =&g ...
- 回顾爬虫的时候的一些小TIPS
1 json.dumps的时候默认会用ascii 所以在写入文件的时候会需要用到的指令变为json.dumps(a,ensuer_ascii=False),这样将禁止转换为ascii 然后再写入的时候 ...
- VIO 初始化小结 - 10.17
最近几个月忙于博士毕业,找工作一直没有继续更新博客,希望以这一篇开始,每个月能够继续有几篇总结博客. 首先review一下比较著名的vio系统 Tightly coupled EKF: mainly ...
- 并发任务管理器AsyncTaskManager
//-------------------------------------------------------------------------- // // Copyright (c) BUS ...
- leetcode-零钱兑换—int溢出
零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: c ...
- 【20180807模拟测试】t1 function
low逼的我也只能写这样的水题... 题面 对于一个整数,定义 f(x)为他的每个数位的阶乘的乘积.例如 f(135)=1! * 3! * 5! =720.给出一个数 a(可以包含前缀零),a 满足他 ...
- MySql优化浅析
优化点:合理的使用索引,可以大幅度提升sql查询效率,特别查询的表的数据量大的时候,效果明显.一.引言 公司的产品XX出行上线正式运营,随着数据量的变大,司机2000+,日订单1万+,注册乘客26W+ ...
- nginx 应用篇
nginx 信号控制(commanLine) kill singel pid ps aux|grep nginx nginx 有两个进程,一个 master 一个worker 一个master管理一 ...
- 2018科大讯飞AI营销算法大赛全面来袭,等你来战!
AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...