Мне нужно скопировать некоторые элементы из std :: map в вектор. Он должен работать как в этом цикле:Копировать карту в вектор
typedef int First;
typedef void* Second;
std::map<First, Second> map;
// fill map
std::vector<Second> mVec;
for (std::map<First, Second>::const_iterator it = map.begin(); it != map.end(); ++it) {
if (it->first % 2 == 0) {
mVec.push_back (it->second);
}
}
Так как я хотел бы избежать использования каких-либо функторы, но и использовать повышение :: лямбда вместо этого, я попытался с помощью зЬй :: копировать, но не может получить это право ,
std::copy (map.begin(), map.end(), std::back_inserter(mVec)
bind(&std::map<int, void*>::value_type::first, _1) % 2 == 0);
Я новичок в лямбда-выражениях, и я не могу понять, как их правильно использовать. Я тоже не получал полезных результатов в Google или StackOverflow. This question is similar