1 #ifndef GINTENLIB_INCLUDED_ASSIGN_HPP_
2 #define GINTENLIB_INCLUDED_ASSIGN_HPP_
8 assign : コピーされる側の都合を優先する copy アルゴリズム
11 template< typename FwdOutIte, typename InIte >
12 InIte assign( FwdOutIte begin, FwdOutIte end, InIte src );
14 template< typename Range, typename InIte >
15 InIte assign( Range& dest, InIte src );
18 [ begin, end ) 区間、あるいは区間 dest を、イテレータ src によって初期化します。
19 戻り値は最後に代入した src の次の要素を示すイテレータになります。
23 for( FwdOutIte ite = begin; ite != end; ++ite, ++src )
30 boost::array<int, 10> b;
32 // a を、boost::counting_iterator を使い 1 〜 10 の値で初期化
33 gintenlib::assign( a, boost::counting_iterator<int>(1) );
36 gintenlib::assign( b.rbegin(), b.rend(), &a[0] );
39 cout << gintenlib::list_format( a ) << endl;
40 cout << gintenlib::list_format( b ) << endl;
43 ・主に固定長のコンテナを初期化をする場面を想定しています。
44 ・可変長のコンテナの場合は、insert_iterator を使って copy した方が効果的です。
48 #include <boost/range.hpp>
52 // [ begin, end ) 区間を src で初期化
53 template< typename FwdOutIte, typename InIte >
54 inline InIte assign( FwdOutIte begin, FwdOutIte end, InIte src )
65 template< typename Range, typename InIte >
66 inline InIte assign( Range& dest, const InIte& src )
68 return ::gintenlib::assign( boost::begin(dest), boost::end(dest), src );
71 } // namespace gintenlib
73 #endif // #ifndef GINTENLIB_INCLUDED_ASSIGN_HPP_