これは動作するはずです。
EDIT:私はこのダブルバインドはむしろ不器用見つけ、そしてfor_each
非最適アルゴリズム(アルゴリズム名は意図を述べるべきで、それは明らかにここにコピーだ私見copy
は、より適しだろう)。あなたもここでtransform iteratorを使用することができます。
select_second
は、ペアの2番目の要素を選択する関数オブジェクトになり
std::copy(boost::make_transform_iterator(mybimap.left.begin(), select_second()),
boost::make_transform_iterator(mybimap.left.end(), select_second()),
std::back_inserter(myvec));
- またはちょうどboost::bind(&map_type::left_map::value_type::second, _1)
を。私は基本的に(書き込みに何もロケット科学を)書いていないの前に要素に適用される単項関数を受け取りback_inserter
ある仕事でtransform_back_inserter
を書かれているtransform_iterator
を使用することができなかった状況では
- それは私は単項関数名を繰り返す必要はありませんよう、可能な場合transform_iterator
に好む傾向にある
std::copy(mybimap.left.begin(),
mybimap.left.end(),
transform_back_inserter(myvec, select_second()));
ようになります。
...(エラー記述をここに入れる)ために動作しませんか? – liori