○vectorの複製(copy)

■複製

#include <stdio.h>
#include <vector> 
#include <algorithm>
#include <functional>

struct cell{
	int no;
	char str[64];
};

int main(){
	std::vector<cell> data;
	cell a;
	a.no = 1;strcpy(a.str,"1です");
	data.push_back(a);
	a.no = 2;strcpy(a.str,"2です");
	data.push_back(a);
	a.no = 3;strcpy(a.str,"3です");
	data.push_back(a);
	a.no = 4;strcpy(a.str,"4です");
	data.push_back(a);
	a.no = 5;strcpy(a.str,"5です");
	data.push_back(a);

	std::vector<cell> resolt(data.size());//サイズを確保して宣言
	std::copy(data.begin(),data.end(),resolt.begin());//複製

	data.erase(&data[0],&data[3]);//選択範囲を消す

	{for(int i=0;i<data.size();i++) printf("%s\n",data[i].str);}

	printf("\n");

	{for(int i=0;i<resolt.size();i++) printf("%s\n",resolt[i].str);}

	return 0;
}

処理結果
4です
5です

1です
2です
3です
4です
5です



▲トップページ > Windows と C++