1. 程式人生 > >STL unique(去重函式) 離散化的一般寫法

STL unique(去重函式) 離散化的一般寫法

#include<iostream>
#include<ctime>
#include<vector>
#include<cstdlib>
#include<algorithm>
#include<map>
using namespace std;
map<int,int>H;
vector<int>a;
int main()
{
	for(int i=1;i<10;i++)
	{
		for(int j=0;j<3;j++)
		{
			a.push_back(i);
		}
	}
	sort(a.begin(),a.end());	
	a.erase(unique(a.begin(),a.end()),a.end());
	for(int i=0;i<a.size();i++)
		H[a[i]]=i+1;

	return 0;
}

unique將相鄰的重複的元素移到最後,返回一個iterator指向最後的重複元素

再用erase刪除就達到了去除重複的目的