Qt|C++工作笔记-QVector与Vector去重复的值
生活随笔
收集整理的這篇文章主要介紹了
Qt|C++工作笔记-QVector与Vector去重复的值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Qt中沒有unique函數,只能用遍歷的方法了,代碼如下:
#include <QApplication> #include <QDebug> #include <QString> #include <QVector>int main(int argc, char *argv[]) {QApplication a(argc, argv);QVector<QString> strVec;strVec.append("1");strVec.append("2");strVec.append("3");strVec.append("4");strVec.append("5");strVec.append("3");strVec.append("5");for(int i=0;i<strVec.size();i++){for(int j=i+1;j<strVec.size();j++){if(strVec[j]==strVec[i]){strVec.remove(i);i--;}}}return a.exec(); }未去除前的截圖:
去除后的截圖:
?
而在標準C++中有一個unique函數,他能把(相鄰)重復的值放到容器的最后【所以這個要先排序】,并且返回一個iterator,這個iterator為開始重復的位置。
源碼如下:
#include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std;void main(){vector<string> strVec;strVec.push_back("1");strVec.push_back("2");strVec.push_back("3");strVec.push_back("4");strVec.push_back("5");strVec.push_back("3");strVec.push_back("5");sort(strVec.begin(),strVec.end());vector<string>::iterator it=unique(strVec.begin(),strVec.end());strVec.erase(it,strVec.end());getchar(); }去除前的截圖:
?
去除后的截圖:
qu'c
?
總結
以上是生活随笔為你收集整理的Qt|C++工作笔记-QVector与Vector去重复的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux学习笔记-线程的自然终止
- 下一篇: C++ opengl 点的绘制