c++ - 如何使用 STL 算法将整数向量转换为字符串向量?
问题描述
例如,我需要{20,6,143}
成为{"20","6","143"}
.
解决方案
只需使用基于范围的 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 << " ";
}
(见在线直播)
推荐阅读
- .net - 为什么`String()().Concat(IEnumerable(Of IEnumerable(Of String))`会失败?
- javascript - 如何在动态添加的表行中创建级联下拉列表并保存在数据库中
- python - django slug 适用于一个词,但当它超过一个词时,它会崩溃
- java - 克隆一个 JFrame
- python - 如何使用 scrapy 在 Reddit 中抓取无限滚动页面?
- mysql - 无法重置 MySQL root 密码窗口 10
- c# - C# HTTP 请求在控制台应用程序中有效,但在 WinForms 中无效
- app-inventor - 麻省理工学院 AppInventor 2 如何显示“加载”通知程序
- python - 如何从 csv 或 txt 文件中删除标题?
- python - 如何找到哪个文档属于哪个集群?