записать в заархивированные обратно вставленные диапазоны

Близкий родственник этого другого вопроса, но с back_inserter:

#include <range/v3/view.hpp>
#include <range/v3/view/zip.hpp>
#include <range/v3/utility/iterator.hpp>

// ...

std::vector< std::tuple<int, std::string, double> > const data{
   {1,"a", 3.14},
   {2,"b", 42.0},
   {3,"c"}
};
std::vector<int> vi;
std::vector<std::string> vs;
std::vector<double> vd;

using namespace ranges;
copy(data,  view::zip(
   back_inserter(vi),
   back_inserter(vs),
   back_inserter(vd)) );

Очевидно, это ошибка, потому что back_inserter() является итератором, а zip ожидает диапазон. Но как выполнить архивирование в обратно вставленные диапазоны?


person Nick    schedule 26.02.2019    source источник