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; }
実行結果
プロジェクトは「Visual C++ CLRコンソールアプリケーション」です。
実行結果に、コメントとその結果があるので、説明は省きます。
参考 : https://msdn.microsoft.com/ja-jp/library/f1dtts6s%28v=vs.90%29.aspx