Предыдущий пост -
Следующий пост -

std::unique_copy().

Рубрика: Алгоритмы, Дата: 5 July, 2013, Автор:
Tags: ,

Копирует последовательность, удаляя равные смежные элементы.

Да копирует и удаляет смежные элементы.

#include <iostream>
using std::cout;
using std::endl;
#include <vector>
using std::vector;
#include <algorithm>
using std::unique_copy;

bool pr(int a, int b){return (a==b);}

int main()
{
	int mass[]={10,10,20,20,30,20,10};
	vector<int> v(8);//0 0 0 0 0 0 0 0
	vector<int>::iterator it;

	unique_copy(mass,mass+7,v.begin());//10 20 30 20 10 0 0 0

	//сортируем
	sort(v.begin(),v.end());

	//используем свою собственную функцию.
	it=unique_copy(v.begin(),v.end(),v.begin(),pr);

	v.resize(distance(v.begin(),it));

	//вывод результатов
	for(it=v.begin();it!=v.end();++it)
		cout <<*it<<' ';
	cout <<endl;//0 10 20 30;



	return 0;
}

[youtube]http://www.youtube.com/watch?v=XDs3H6_Z27Q[/youtube]

rss