M
mojmir
hello,
i have two vectors and i am combining them into third one:
std::vector<int> orig, result;
std::vector<size_t> perm; // permutations
but i cannot compile following line:
std::transform(perm.begin(), perm.end(), result.begin(), orig[_1]);
because compiler seems to have trouble selecting among:
reindex.cpp:43: error: no match for 'operator[]' in 'orig[_1]'
stl_vector.h:462: candidates are:
_Alloc::reference std::vector<..>:perator[](size_t)
stl_vector.h:476:
_Alloc::const_reference std::vector<..>:perator[](size_t) const
i've tried another form that works
std::transform(perm.begin(), perm.end(), result.begin(),
*(&orig[0]+_1));
can you please help me understand what is going on?
many thanks in advance,
mojmir
i have two vectors and i am combining them into third one:
std::vector<int> orig, result;
std::vector<size_t> perm; // permutations
but i cannot compile following line:
std::transform(perm.begin(), perm.end(), result.begin(), orig[_1]);
because compiler seems to have trouble selecting among:
reindex.cpp:43: error: no match for 'operator[]' in 'orig[_1]'
stl_vector.h:462: candidates are:
_Alloc::reference std::vector<..>:perator[](size_t)
stl_vector.h:476:
_Alloc::const_reference std::vector<..>:perator[](size_t) const
i've tried another form that works
std::transform(perm.begin(), perm.end(), result.begin(),
*(&orig[0]+_1));
can you please help me understand what is going on?
many thanks in advance,
mojmir