删除Vector 结构体元素相同的,保留后面一个
来源:互联网 发布:兄贵音源软件 编辑:程序博客网 时间:2024/06/08 03:55
#include <stdio.h>#include <memory.h>#include <string>#include <iostream>#include <opencv2/opencv.hpp>#include <windows.h>#include <shellapi.h>#include <shlwapi.h>#include <wininet.h>#include <time.h>#include <algorithm>using namespace std;struct link { string a;string b; bool operator <(const link& rhs) const { if(a!=rhs.a) return a <rhs.a; return b <rhs.b; } bool operator==(const link& rhs) const { return a == rhs.a; } };int main( int argc, char** argv ) {vector <link> LinkV; link lk;lk.a="tiantain";lk.b="zeze";LinkV.emplace_back(lk);lk.a="niuniu";lk.b="doudou";LinkV.emplace_back(lk);lk.a="niuniu";lk.b="maomao";LinkV.emplace_back(lk);//sort(LinkV.begin(),LinkV.end());//LinkV.erase(unique(LinkV.begin(),LinkV.end()), LinkV.end()); cout<<"原内容"<<endl;for(int i=0; i<LinkV.size(); i++){cout<<LinkV[i].a<<" "<<LinkV[i].b<<endl;}vector <link> reLinkV; vector<link>::reverse_iterator it= LinkV.rbegin();for (it = LinkV.rbegin(); it != LinkV.rend(); ++it) // decrements iterator one element {//cout << it->a <<" "<<it->b<<endl; lk.a = it->a;lk.b = it->b;reLinkV.emplace_back(lk);}cout<<endl;reLinkV.erase(unique(reLinkV.begin(),reLinkV.end()), reLinkV.end()); for(int i=0; i<reLinkV.size(); i++) { //cout<<reLinkV[i].a<<" "<<reLinkV[i].b<<endl; }//再反回来,存入原来的容器中,原来的容器要清空下LinkV.clear();//原来的容器要清空下for (it = reLinkV.rbegin(); it != reLinkV.rend(); ++it) //把处理后的数据再重新放入之前的容器中 {//cout << it->a <<" "<<it->b<<endl;lk.a = it->a;lk.b = it->b;LinkV.emplace_back(lk);}cout<<"处理后的内容"<<endl;for(int i=0; i<LinkV.size(); i++){cout<<LinkV[i].a<<" "<<LinkV[i].b<<endl;}return 0;}
结果:
0 0
- 删除Vector 结构体元素相同的,保留后面一个
- 删除vector 某个结构体元素相同的内容
- NSMutableArray和NSArray删除相同元素并只保留一个的方法
- 简单实现遍历vector 删除所有相同的元素
- vector 删除制定的一个元素
- vector元素的删除
- vector数组中删除相同元素(输入的元素输出时只能出现一次)
- vector中删除一个元素
- 删除串中相同的元素:一个做法
- 关于删除数组中相同元素的一个小技巧
- 删除所有相同的元素
- vector结构体 删除
- 已知线性表中元素以值递增有序排列,并以单链表作为存储结构,设计一个算法,删除表中值相同的多余元素
- 对于数组中相同元素只保留一个
- 题目:要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的
- 元素为结构体的vector 找最大元素
- 元素为结构体的vector 找最大元素
- MYSQL删除一个字段相同记录,保留ID最小记录
- Python位运算符
- POJ2823_Sliding Window_优先队列||线段树
- iOS开发零基础教程之真机调试流程
- Linux系统升级bash安装 ---待更新
- android开发中Canvas.save()、Canvas.restore()的区别与联系
- 删除Vector 结构体元素相同的,保留后面一个
- 自定义ToolBar与ToolBar的封装,使ToolBar的Title居中
- Vim简明教程【CoolShell】
- 使用echarts插件画折线图,及echarts配置项解释
- 【ORACLE】Oracle 11.2.0.1数据泵导入导出操作,报ORA-39083,ORA-14102
- union all
- 【ORACLE】Oracle 11.2.0.1数据泵导入导出操作,报ORA-39083,ORA-14102
- 7、vim
- Java 多线程之多个窗口售票问题