// 31_31-2.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <windows.h>

using namespace std;

void disp_v(vector<char> &obj)
{
	vector<char>::iterator p;
	for (p = obj.begin(); p != obj.end(); p++) {
		cout << *p;
	}
	cout << '\n';
}

int _tmain(int argc, _TCHAR* argv[])
{
	vector<char>::iterator p;
	char s1[] = "ABC123";
	char s2[7];
	int slen = strlen(s1);
	vector<char> v1(s1, s1+slen);
	vector<char> v2(slen);

	cout << "-----s2とv2にfillで'F'を埋める\n";
	fill(s2, s2+6, 'F');
	s2[6] = '\0';
	fill(v2.begin(), v2.end(), 'F');

	cout << "-----内容を見る\n";
	cout << "s1: " << s1 << '\n';
	cout << "s2: " << s2 << '\n';
	cout << "v1: ";
	disp_v(v1);
	cout << "v2: ";
	disp_v(v2);

	cout << "-----s1とv1をreverse処理をする\n";
	reverse(s1, s1+slen);
	reverse(v1.begin(), v1.end());
	cout << "s1; " << s1 << '\n';
	cout << "v1: ";
	disp_v(v1);

	cout << "-----s1とv1をswapする\n";
	swap(v1, v2);
	cout << "v1: ";
	disp_v(v1);
	cout << "v2: ";
	disp_v(v2);

	cout << "-----s1の先頭と先頭+1の要素をiter_swapする\n";
	iter_swap(s1, s1+1);
	cout << "s1: " << s1 << '\n';

	cout << "-----v2の先頭と先頭+1の内容をiter_swapする\n";
	p = v2.begin();
	iter_swap(p, p+1);
	cout << "v2: ";
	disp_v(v2);	

	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

