如何使用 STL 算法将整数向量转换为字符串向量?

How can I convert a vector of ints to be a vector of strings using STL algorithms?

本文关键字:向量 转换 字符串 整数 何使用 STL 算法      更新时间:2023-10-16

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

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

#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 << " ";
}

(在线观看直播(

std::transform 与 std::to_string 相结合应该可以解决问题。