Windows Dev. Site

C++ Standard Template Library

最近は、すっかり使わなくなってしまいましたが、C++をちょっと見直す機会があり、再学習とこれから使うためのリファレンスの意味で、興味がある機能を並べてました。

環境 : VisualStudio 2010 / Windows 7

#include "stdafx.h"
#include <iostream>
#include <deque>
#include <algorithm>

using namespace std;
typedef deque<int> INTDEQUE;

void p(int n)
{
	cout << n << " ";
}
int main(array<System::String ^> ^args)
{
	INTDEQUE  dq;

	dq.push_front(3);
	dq.push_front(2);
	dq.push_front(1);
	dq.insert(dq.begin(), 0);
	dq.push_back(9);

	cout << "start : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	INTDEQUE::reference reff = dq.front();
	INTDEQUE::reference ref2 = dq[2];
	INTDEQUE::reference refe = dq.back();

	reff = 10;
	ref2 = 12;
	refe = 19;

	cout << "refer : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	dq.pop_front();
	dq.pop_front();

	cout << "pop   : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	dq.push_back(21);
	dq.push_back(22);

	cout << "push  : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	random_shuffle(dq.begin(), dq.end());

	cout << "shuff : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	rotate(dq.begin(), dq.begin() + 1, dq.end());
    
	cout << "rotat : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	dq.erase(dq.end()-2,dq.end());
	
	cout << "erase : ";
	for_each(dq.begin(), dq.end(), p);
	cout << endl;

	getchar();

    return 0;
}

実行結果
cppstl01
プロジェクトは「Visual C++ CLRコンソールアプリケーション」です。
実行結果に、コメントとその結果があるので、説明は省きます。

参考 : https://msdn.microsoft.com/ja-jp/library/f1dtts6s%28v=vs.90%29.aspx