実行時の条件によっては、範囲を超えて直接または逆の順序で反復処理する状況が定期的に発生します。これは、典型的には、コードの重複(最初のもの)を含むか、または(1秒)に非効率的である以下 if (reverse) {
using boost::adaptors::reversed;
for (auto const & x : range | reversed) do_stuff(
私は最近、ベクター上で変換/機能を実行しなければならないときに、範囲アダプタをブーストで使用し始めました。以下は、レンジアダプタの使用を開始したときに私が見つけた最も単純な例のスニペットです。 int multiplyByTwo(int n) { return n*2; }
std::vector<int> num = {1, 2, 3, 4, 5};
auto result = num |