(C++) Create a new vector by mapping elements of another vector

  1. Define the new vector as empty.
  2. Define a (lambda) function to use to map each element of the given vector.
  3. Use std::transform and std::back_inserter to fill in the new vector.

Example:

std::vector<int> givenVector{1,2,3,4,5};

// Step 1
std::vector<std::string> ret{};
ret.reserve(givenVector.size());

// Step 2
auto const stringOfTwice = [](int val) { return std::to_string(val * 2); }

// Step 3
std::transform(givenVector.begin(), givenVector.end(),
    std::back_inserter(ret), stringOfTwice);

Reference:

Written on February 27, 2022