Близкий родственник этот другой вопрос , но с 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
являетсяожидая диапазон.Но как выполнить вставку в задний диапазон?