C++中unique函数的用法示例
介绍
unique是STL比较实用的一个函数。用于“去除”容器内相邻的重复的元素(只保留一个)。这里说的去除并不是真正将容器内的重复元素删去,只是把重复的元素移到容器最后,但是依然在容器内。 对于数组而言返回去重后最后一个元素的指针,而其他容器则是返回去重后最后一个元素的迭代器。

用法举例
因为是去除相邻的重复元素,因此通常使用前容器应该要是有序的。
数组
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[6] = {1,1,4,6,6,7};
int *p = unique(a,a+6);
cout << &a[4] << endl;
cout << p << endl;
cout << p - a <<endl;
for(int i = 0;i < p-a;i++)
{
cout << a[i] << endl;
}
return 0;
}

vector
要想真正去除重复元素还需要使用erase()函数
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v.push_back(1);
v.push_back(1);
v.push_back(4);
v.push_back(6);
v.push_back(6);
v.push_back(7);
vector<int>::iterator it = unique(v.begin(),v.end());
cout<< v.size() <<endl;
v.erase(it,v.end());
for(it = v.begin();it != v.end();it++)
{
cout << *it << " ";
}
return 0;
}

总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)
shared_ptr基本用法 shared_ptr采用引用计数的方式管理所指向的对象.当有一个新的shared_ptr指向同一个对象时(复制shared_ptr等),引用计数加1.当shared_ptr离开作用域时,引用计数减1.当引用计数为0时,释放所管理的内存. 这样做的好处在于解放了程序员手动释放内存的压力.之前,为了处理程序中的异常情况,往往需要将指针手动封装到类中,通过析构函数来释放动态分配的内存:现在这一过程就可以交给shared_ptr去做了. 一般我们使用make_shared来
-
C++ 中使用lambda代替 unique_ptr 的Deleter的方法
代码 #include <iostream> #include <cstdlib> #include <memory> #include <string> #include <functional> using namespace std; class go { public: go() {} ~go() { cout << "go die.\n"; } }; auto d = [] ( go * gp ) { d
-
C++中unique函数的用法示例
介绍 unique是STL比较实用的一个函数.用于"去除"容器内相邻的重复的元素(只保留一个).这里说的去除并不是真正将容器内的重复元素删去,只是把重复的元素移到容器最后,但是依然在容器内. 对于数组而言返回去重后最后一个元素的指针,而其他容器则是返回去重后最后一个元素的迭代器. 用法举例 因为是去除相邻的重复元素,因此通常使用前容器应该要是有序的. 数组 #include <iostream> #include <algorithm> using namesp
-
jQuery中extend函数简单用法示例
本文实例讲述了jQuery中extend函数简单用法.分享给大家供大家参考,具体如下: var result=$.extend({},item,item1); extend给对象添加新的属性:js插件经常使用来配置参数 {}:item和item1合并后的结果 item:默认属性 item1:新增属性,如果item1和item属性重合则会覆盖item1中的属性 <span id="Test"></span> var item={"name":&
-
php中preg_replace_callback函数简单用法示例
本文实例讲述了php中preg_replace_callback函数用法.分享给大家供大家参考,具体如下: mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] ) 本函数的行为几乎和 preg_replace() 一样,除了不是提供一个 replacement 参数,而是指定一个 callback 函数.该函数将以目标字符串中的匹配数组作为输入参数,并返回用于替换的
-
Python中join函数简单代码示例
本文简述的是string.join(words[, sep]),它的功能是把字符串或者列表,元组等的元素给拼接起来,返回一个字符串,和split()函数与正好相反,看下面的代码理解. 首先展示下结果吧! 代码分享: a=["豫","N","C8","C89"] b=("豫","N","C8","C89") c="zhang" a
-
Oracle 中Contains 函数的用法
1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, 'beijing' ) remark: beijing是一个单词,要用单引号括起来. 2. 查询住址在河北省的学生 SELECT student_id,student_nameFROM students WHERE CONTAINS( address, '"HEIBEI province"' ) remark: HEBE
-
python中namedtuple函数的用法解析
源码解释: def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None): """Returns a new subclass of tuple with named fields. >>> Point = namedtuple('Point', ['x', 'y']) >>> Point.__doc__ # docstring for
-
AngularJS中一般函数参数传递用法分析
本文实例讲述了AngularJS中一般函数参数传递用法.分享给大家供大家参考,具体如下: 1. 模型参数 直接使用变量名,不要加引号 <!doctype html> <html ng-app="passAter"> <head> <meta charset="utf-8"/> </head> <body> <div ng-controller="passCtrl">
-
Sql Server中Substring函数的用法实例解析
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'
-
Jquery中map函数的用法
很久没用map()这个函数了,由于最近看一篇react的文章,其中有谈到map()这个函数,于是就重新查了一些资料,发现map()函数可以用在不同的地方,下面小编总结具有内容分享给大家,也方便今后查找. 其实,本人一直很少用map()这个函数,因为最近看一篇React的文章,其实有谈及map()函数,于是自己也重新查了一些资料,发现map()函数也可以用在不同的地方: map()函数把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的Jquery对象 语法:.map(callback(i
-
Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__: class int(object) | int(x[, base]) -> integer | | Convert a string or number to an integer, if possible. A floating point | argument will be truncated
随机推荐
- extjs_02_grid显示本地数据、显示跨域数据
- 简介C#读取XML的两种方式
- Erlang并发编程介绍
- vue实现表格数据的增删改查
- 非主流提供的个性另类图片
- Java中使用开源库JSoup解析HTML文件实例
- js新闻滚动 js如何实现新闻滚动效果
- windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
- js事件冒泡、事件捕获和阻止默认事件详解
- 深入理解JavaScript程序中内存泄漏
- python抓取京东价格分析京东商品价格走势
- 夸人长得丑的二十种方法
- 深入分析Javascript事件代理
- jquery预加载图片的方法
- android通过代码的形式来实现应用程序的方法
- Javascript常考语句107条收集
- centos6.4配置163 yum源的方法
- android多线程断点下载-带进度条和百分比进度显示效果
- java Collection 之List学习介绍
- PHP中错误与异常的日志记录用法分析
