有没有一些方法可以在C++,win32中将向量转换为向量?
我有这个字符串向量与数字:
std::vector<std::string> DataNumbers;
Run Code Online (Sandbox Code Playgroud)
我需要将此向量字符串转换为向量整数.
Jos*_*eld 26
鉴于:
std::vector<std::string> DataNumbers;
// Fill DataNumbers
std::vector<int> Data;
Run Code Online (Sandbox Code Playgroud)
你可以用std::transform.使用a std::back_inserter将值插入到std::vector<int>.对于一元函数,请使用std::stoi用于将字符串转换为整数的lambda表达式.
std::transform(DataNumbers.begin(), DataNumbers.end(), std::back_inserter(Data),
[](const std::string& str) { return std::stoi(str); });
Run Code Online (Sandbox Code Playgroud)
这是一个没有lambda的版本(std::bind改为使用):
typedef int(*stoi_type)(const std::string&, std::size_t*, int);
std::transform(DataNumbers.begin(), DataNumbers.end(), std::back_inserter(Data),
std::bind(static_cast<stoi_type>(&std::stoi),
std::placeholders::_1, nullptr, 10));
Run Code Online (Sandbox Code Playgroud)
尝试这个:
std::vector<std::string> DataNumbers;
// Fill DataNumbers
std::vector<int> intNumbers;
for (int i=0; i<= 5; i++)
{
int num = atoi(DataNumbers.at(i).c_str());
intNumbers.push_back(num);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19896 次 |
| 最近记录: |