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

copy

by hominic 2023. 12. 9.
728x90
반응형
#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 i;
	vector<int> vi,vi2;
	for (i=0;i<10;i++) vi.push_back(i);
	vi2=vi;

	dump("복사전",vi);
	copy(vi.begin()+2,vi.begin()+7,vi.begin()+3);
	dump("copy",vi);
	copy_backward(vi2.begin()+2,vi2.begin()+7,vi2.begin()+8);
	dump("back",vi2);
}

copy

반응형
#include <iostream>
#include <algorithm>
using namespace std;

void main()
{
	char src[]="1234567890";
	char dest[]="abcdefghij";

	copy(&src[3],&src[7],&dest[5]);
	puts(dest);
}

 

 

copy2

#include <iostream>
#include <list>
#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()
{
	char src[]="1234567890";
	list<char> li;

	copy(&src[3],&src[7],back_inserter(li));
	dump("list",li);
}

 

 

copy_backward

#include <iostream>
#include <list>
#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 i;
	list<int> li,li2;
	list<int>::iterator first,last,result,it;

	for (i=0;i<10;i++) li.push_back(i);
	li2=li;

	dump("복사전",li);
	first=find(li.begin(),li.end(),2);
	last=find(li.begin(),li.end(),7);
	result=find(li.begin(),li.end(),3);
	copy(first,last,result);
	dump("copy",li);

	first=find(li2.begin(),li2.end(),2);
	last=find(li2.begin(),li2.end(),7);
	result=find(li2.begin(),li2.end(),8);
	copy_backward(first,last,result);
	dump("back",li2);
}

 

 

copy_backward2

#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 i;
	vector<int> vi,vi2;
	for (i=0;i<10;i++) vi.push_back(i);
	vi2=vi;

	dump("복사전",vi);
	copy(vi.begin()+2,vi.begin()+7,vi.begin()+3);
	dump("copy",vi);
	copy_backward(vi2.begin()+2,vi2.begin()+7,vi2.begin()+8);
	dump("back",vi2);
}
728x90
반응형

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

random_shuffle  (0) 2023.12.09
fill  (0) 2023.12.09
count  (0) 2023.12.09
mstmatch  (0) 2023.12.09
equal  (0) 2023.12.09

댓글