std::back_inserter
[東方算程譚] トークン分割
http://blogs.wankuma.com/episteme/archive/2007/09/11/95398.aspx
http://blogs.wankuma.com/episteme/archive/2007/09/11/95446.aspx
http://blogs.wankuma.com/episteme/archive/2007/09/12/95611.aspx
http://blogs.wankuma.com/episteme/archive/2007/09/12/95680.aspx
std::back_inserterって何?だったので調べてみる。
#include <iterator> #include <deque> #include <list> #include <algorithm> #include <iostream> int Dump( int ); int main( void ) { std::list< int > lsValue; std::deque< int > deqValue; for ( int i = 0; i < 5; ++i ) { lsValue.push_back( i ); } #if 0 std::copy( lsValue.begin(), lsValue.end(), std::front_inserter( deqValue ) ); #elif 0 std::copy( lsValue.begin(), lsValue.end(), std::back_inserter( deqValue ) ); #else deqValue.assign( lsValue.size() ); std::copy( lsValue.begin(), lsValue.end(), deqValue.begin() ); #endif std::for_each( deqValue.begin(), deqValue.end(), Dump ); (void)::fgetc( stdin ); return 0; } int Dump( int nValue ) { std::cout << nValue << std::endl; return 0; }
成る程理解した。
std::back_inserterって STL標準講座―標準テンプレートライブラリを利用したC++プログラミング (Programmer’s SELECTION) には載っていないな。C++ライブラリクイックリファレンス については明日調べよう。
C++ライブラリクイックリファレンス にはちゃんと載っていた。Effective STL―STLを効果的に使いこなす50の鉄則 の第30項にも利用例が載っているな。