본문 바로가기
프로그래밍 기록/stl

generate, remove, remove_copy, unique

by hominic 2023. 12. 9.
728x90
반응형

generate

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
	copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }

int fibo() 
{
	static int i1=1,i2=1;
	int t;
	t=i1+i2;
	i1=i2;
	i2=t;
	return t; 
}

void main()
{
	vector<int> vi(10);

	generate(vi.begin(),vi.end(),fibo);
	dump("vi",vi);
}

 

 

반응형

 

remove

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
	copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }

void main()
{
	int ari[]={3,1,4,1,5,9,2,6,5};
	vector<int> vi(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
	vector<int>::iterator it;

	dump("원본",vi);
	it=remove(vi.begin(),vi.end(),1);
	dump("remove",vi);
	vi.erase(it,vi.end());
	dump("erase",vi);
}

 

 

remove_copy

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
	copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }

void main()
{
	int ari[]={3,1,4,1,5,9,2,6,5};
	vector<int> vi(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
	vector<int> vi2;

	remove_copy(vi.begin(),vi.end(),back_inserter(vi2),1);
	dump("vi",vi);
	dump("vi2",vi2);
}

 

unique

#include <iostream>
#include <algorithm>
using namespace std;

void main()
{
	char str[]="abcccddefggghi";
	char *p;
	
	puts(str);
	p=unique(&str[0],&str[strlen(str)]);
	*p=0;
	puts(str);
}
728x90

 

728x90
반응형

'프로그래밍 기록 > stl' 카테고리의 다른 글

merge,minmax,accumulate,adjacent_difference  (0) 2023.12.09
replace,partition,transform,sort,lower_bound  (0) 2023.12.09
random_shuffle  (0) 2023.12.09
fill  (0) 2023.12.09
copy  (0) 2023.12.09

댓글