Как скопировать элемент из объекта в одном контейнере в другой контейнер с помощью алгоритма? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть контейнер объектов, и я хотел бы скопировать один и тот же элемент из каждого объекта в контейнер типа этого элемента.

Т.е. что-то вроде этого:

struct X { int x; }

std::vector<X> src;
std::vector<int> dst;

...

auto it_dst = dst.begin();
for (auto& element : src) {
  *(it_dst++) = element.x;
}

OfКонечно, используя алгоритм, а не цикл.

1 Ответ

0 голосов
/ 19 ноября 2018

Похоже на работу для transform с лямбдой (я думаю, что вы не выделили свой вектор):

std::transform(src.begin(), src.end(), std::back_inserter(dst),
               [](const auto& v) -> int { return v.x; });
...