当前位置:C++技术网 > 资讯 > STL中的unique函数实现重复数据移除操作

STL中的unique函数实现重复数据移除操作

更新时间:2016-04-18 22:10:34浏览次数:1+次

对于unique函数,其实就是移除数组中重复的元素。不过,我们得先将其排序。不过你得注意,unique并不能删除数据,只是重新排序了而已,下面,我们看看实现吧:

这是unique函数的完整实现,看看代码:

#include "iostream"
#include "vector"
#include "windows.h"
#include "iterator"
#include "algorithm"

using namespace std;

int main()
{
	vector<char> coll;
	copy(istream_iterator<char>(cin),istream_iterator<char>(),back_inserter(coll));

	sort(coll.begin(),coll.end());
	copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//输出排序后的数组

	cout<<endl;

	/*vector<char>::iterator pos=*/unique(coll.begin(),coll.end());

	copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//注意了,我加了注释
	system("pause");
	return 0;
}
下面看看真正移除了重复的数据的代码:

#include "iostream"
#include "vector"
#include "windows.h"
#include "iterator"
#include "algorithm"

using namespace std;

int main()
{
	vector<char> coll;
	copy(istream_iterator<char>(cin),istream_iterator<char>(),back_inserter(coll));

	sort(coll.begin(),coll.end());
	copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//输出排序后的数组

	cout<<endl;

	vector<char>::iterator pos=unique(coll.begin(),coll.end());

	copy(coll.begin(),pos,ostream_iterator<char>(cout," "));//注意了,我加了注释
	system("pause");
	return 0;
}