介紹
unique是STL比較實(shí)用的一個(gè)函數(shù)。用于“去除”容器內(nèi)相鄰的重復(fù)的元素(只保留一個(gè))。這里說(shuō)的去除并不是真正將容器內(nèi)的重復(fù)元素刪去,只是把重復(fù)的元素移到容器最后,但是依然在容器內(nèi)。 對(duì)于數(shù)組而言返回去重后最后一個(gè)元素的指針,而其他容器則是返回去重后最后一個(gè)元素的迭代器。

用法舉例
因?yàn)槭侨コ噜彽闹貜?fù)元素,因此通常使用前容器應(yīng)該要是有序的。
數(shù)組
#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
要想真正去除重復(fù)元素還需要使用erase()函數(shù)
#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;}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答