string类型怎么装换成list<long>类型
时间: 2023-05-04 22:06:09 浏览: 201
java将String字符串转换为List<Long>类型实例方法
将string类型转换成list<long>类型需要进行以下步骤:
1. 将string类型转换为vector<string>类型,可以使用split函数或者istringstream进行分离。例如,我们可以使用split函数,代码如下:
```
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
std::vector<std::string> split(const std::string& str, const char delim) {
std::vector<std::string> res;
std::stringstream ss(str);
std::string token;
while (std::getline(ss, token, delim)) {
res.push_back(token);
}
return res;
}
int main() {
std::string s = "1-2-3-4-5";
char delim = '-';
std::vector<std::string> tmp = split(s, delim);
return 0;
}
```
以上代码中,split函数可以将字符串s按照delim字符进行切割,存储在vector<string>中。这里用了stringstream的好处是,我们可以用getline函数读取stringstream中的值,以delim为分隔符。
2. 将vector<string>类型转换为list<long>类型,可以使用标准库中的transform函数,把每个string类型直接转换成long类型,代码如下:
```
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <list>
#include <algorithm>
std::vector<std::string> split(const std::string& str, const char delim) {
std::vector<std::string> res;
std::stringstream ss(str);
std::string token;
while (std::getline(ss, token, delim)) {
res.push_back(token);
}
return res;
}
int main() {
std::string s = "1-2-3-4-5";
char delim = '-';
std::vector<std::string> tmp = split(s, delim);
std::list<long> res;
std::transform(tmp.begin(), tmp.end(), std::back_inserter(res),
[](const std::string& s) { return std::stol(s); });
return 0;
}
```
以上代码中,在使用transform函数过程中,我们可以编写一个lambda表达式将每一个string类型的值直接转换成long类型,并将结果插入到list中。
综上所述,可以使用split函数和transform函数,将string类型转换成list<long>类型。
阅读全文