cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个。
unique(b,e,p)
unique_copy(b1,e1,b2)
unique_copy(b1,e1,b2,p)
copy(source, source + sourceNum,back_inserter(ilist));//ilist是空的,无数据,所以需要,back_inserter

删除性算法

注意:
1.应该有一个unique_if(),但是没有
2.应该有一个unique_copy_if(),但是没有

STL算法都是针对容器使用的。
error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可

 /*cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个。
unique(b,e,p)
unique_copy(b1,e1,b2)
unique_copy(b1,e1,b2,p)
copy(source, source + sourceNum,back_inserter(ilist));//ilist是空的,无数据,所以需要,back_inserter 删除性算法 注意:
1.应该有一个unique_if(),但是没有
2.应该有一个unique_copy_if(),但是没有 STL算法都是针对容器使用的。
error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可
*/ #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <list> using namespace std; template <typename TT2>
void print(TT2 &ilist)
{
for (TT2::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl;
}
bool differenceOne(int elem1, int elem2)//前一个比后一个大1或者小于1
{
return elem1 + == elem2 || elem1 - == elem2;
} int main()
{
int source[] = {,,,,,,,,,,,,,,,,};
int sourceNum = sizeof(source) / sizeof(source[]);
list<int> ilist;
copy(source, source + sourceNum,back_inserter(ilist));//ilist是空的,无数据,所以需要,back_inserter
print(ilist); cout << "删除连续重复的数据,只留下一个" << endl;
list<int>::iterator pos;
pos=unique(ilist.begin(), ilist.end());//返回的是迭代器的位置,定位在删除后的位置的下一个位置。
for (list<int>::iterator iter = ilist.begin(); iter != pos; ++iter)
cout << *iter << ' ';
cout << endl;
cout << "删除前:" << endl; copy(source, source + sourceNum, ilist.begin());
print(ilist); // 3,2,5,7,6,
//3比2大,把2删除,剩余:3,5,7,6
//3,5,比较,5大不作处理。
//5,7,不作处理
//7,6,把6删除。
//剩余3,5,7 //cout << "这里的greater<>(),作用是如果前面的数比后面的数大,则删除后面的数" << endl;
pos = unique(ilist.begin(), ilist.end(), greater<int>()); cout << "删除后:" << endl;
for (list<int>::iterator iter = ilist.begin(); iter != pos; ++iter)
cout << *iter << ' ';
cout << endl; copy(source, source + sourceNum, ilist.begin());
print(ilist);
cout << "使用unique_copy:" << endl;
unique_copy(ilist.begin(), ilist.end(), ostream_iterator<int>(cout, " "));
cout << endl; cout << "前一个比后一个大1或者小于1,就删除后面的一个数" << endl;
unique_copy(ilist.begin(), ilist.end(), ostream_iterator<int>(cout, " "), differenceOne); return ;
}

cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据的更多相关文章

  1. cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if

    cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...

  2. cb43a_c++_STL_算法_删除_(1)remove_remove_if

    cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...

  3. cb37a-_c++_STL_算法_复制元素copy_copy_backward

    cb37a-_c++_STL_算法_复制元素copy_copy_backward copy(),同一个容器内部区间的拷贝,或者容器与容器之间的拷贝copy_backward()//向后copy 注意: ...

  4. cb51a_c++_STL_算法_根据第n个元素排序nth_element

    cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...

  5. cb50a_c++_STL_算法_局部排序partial_sort

    cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...

  6. cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort

    cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...

  7. cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition

    cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...

  8. cb47a_c++_STL_算法_排列组合next_prev_permutation

    cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...

  9. cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance

    cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...

随机推荐

  1. 如何利用Xpath抓取京东网商品信息

    前几小编分别利用Python正则表达式和BeautifulSoup爬取了京东网商品信息,今天小编利用Xpath来为大家演示一下如何实现京东商品信息的精准匹配~~ HTML文件其实就是由一组尖括号构成的 ...

  2. 浅谈spring依赖注入

    了解依赖注入 前言 先了解下控制反转--转自知乎的国哥 如果一个类A 的功能实现需要借助于类B,那么就称类B是类A的依赖,如果在类A的内部去实例化类B,那么两者之间会出现较高的耦合,一旦类B出现了问题 ...

  3. vue中 transition组件使用总结

    博客园比较啃爹啊,随笔只能手写,之前写在有道云笔记里面的内容也复制不了,忧伤..... 长话短说,看官方的transition 的讲解,可能是内容太多了,或者就是本人太辣鸡了,看的有点懵逼,但是项目中 ...

  4. Charles截获iPhone网络请求

    Charles介绍:Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,有时为了调试与服务器端的网络通讯协议,常常需要服务端原因一起调试.有了Charles客户端人员自娱自乐了,想怎 ...

  5. [COCOS2DX-LUA]0-001.利用ClippingNode实现放大镜功能

    用过Iphone的都知道,Iphone在定位光标位置的时候会把内容进行放大,这样我们就能很快的把光标移动到指定的位置.那么在我们的Cocos2dX的游戏中,怎么可以实现这种功能呢.起先我就是想起了Ip ...

  6. [SD心灵鸡汤]005.每月一则 - 2015.09

    精彩的激励人生的话都是从成功者嘴里说出来的,他们成功的过程我们仅仅知道一二,结果却是名满天下.既然看这个激励语,就是想要成功的人,所以大家好好读懂,然后执行,那么你离成功就不远了! 1.万里寻山历百艰 ...

  7. 07 . Nginx常用模块及案例

    访问控制 用户访问控制 ngx_http_auth_basic_module 有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问 ...

  8. ArcCore重构-打通Can各层ID配置

    https://mp.weixin.qq.com/s/JX7VZwyMqk_9iVMm_N2pxA https://mp.weixin.qq.com/s/5Y8Dt9j1-NQmnjfYhE19dg ...

  9. Linux、Android系统调用从上层到底层的调用路径浅析

    参考: https://blog.csdn.net/liuhangtiant/article/details/85149369 http://blog.sina.com.cn/s/blog_79433 ...

  10. Java实现 蓝桥杯VIP 算法提高 三角形面积

    算法提高 三角形面积 时间限制:1.0s 内存限制:256.0MB 问题描述 由三角形的三边长,求其面积. 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c)/2 输入格式 由 ...