首页 > 解决方案 > 如何使用 STL 算法将整数向量转换为字符串向量?

问题描述

例如,我需要{20,6,143}成为{"20","6","143"}.

标签: c++algorithmtransformstdvectorc++-standard-library

解决方案


只需使用基于范围的 for 循环,您就可以遍历整数向量,并使用 std::to_string您可以将每个元素转换为 string 并存储到新的 strings 向量

#include <iostream>
#include <vector>
#include <string>

int main()
{
   std::vector<int> vec{ 20,6,143 };
   std::vector<std::string> strVec;
   strVec.reserve(vec.size());  // reserve memory for unwanted reallocations

   for (int element : vec)
      strVec.emplace_back(std::to_string(element));

   for (const auto& str : strVec)
      std::cout << str << " ";

}

见在线直播


或者使用std::transform,您可以按如下方式转换整数向量。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm> // std::transform
#include <iterator>  // std::cbegin

int main()
{
   std::vector<int> vec{ 20,6,143 };
   std::vector<std::string> strVec;
   strVec.reserve(vec.size());  // reserve memory for unwanted reallocations

   std::transform(std::cbegin(vec), std::cend(vec),
      std::back_inserter(strVec), // insert to the back of strVec
      [](const int element) { return std::to_string(element);}
   );

   for (const auto& str : strVec)
      std::cout << str << " ";
}

见在线直播


推荐阅读