list<string>转list<long>
时间: 2023-05-31 16:20:35 浏览: 133
### 回答1:
可以使用循环遍历list<string>,将每个元素转换为long类型后添加到新的list<long>中。具体代码如下:
```python
list_str = ['123', '456', '789']
list_long = []
for s in list_str:
list_long.append(int(s))
```
其中,list_str是原始的list<string>,list_long是转换后的list<long>。在循环中,使用int()函数将每个字符串转换为long类型,然后添加到list_long中。
### 回答2:
list<string>转list<long>的方法主要是通过遍历list<string>,并将每个字符串转换为long类型,然后将其存储到list<long>中。
具体步骤如下:
1. 遍历list<string>中的每一个元素,使用stol函数将字符串转换为long类型。
2. 转换成功后,将long类型的值存储到一个新的list<long>中。
3. 最终得到的list<long>就是转换后的结果。
需要注意的是,转换过程中可能会出现不合法的字符串导致转换失败,可以通过异常处理来解决。
如果需要在转换时忽略无法转换的字符串,可以使用try-catch语句捕获异常并忽略异常情况。
以下是一个示例代码:
```
list<string> strList = {"123", "456", "789", "abc"};
list<long> longList;
for (auto str : strList) {
try {
longList.push_back(stol(str));
} catch (...) {
continue;
}
}
// 输出转换后的结果
for (auto num : longList) {
cout << num << " ";
}
```
上述代码会输出:123 456 789。由于字符串"abc"无法转换为long类型,因此被忽略掉了。
### 回答3:
题目要求将类型为string的列表list<string>转换成类型为long的列表list<long>。我们可以使用C++11中的std::transform算法来实现这一转换操作。
首先,我们需要定义一个转换函数,它能够将string类型的元素转换成long类型的元素。这个函数可以使用std::stol()函数来实现:
long stringToLong(const std::string& s) {
return std::stol(s);
}
然后,我们需要将这个函数作用于list<string>中的每个元素。这可以通过std::transform算法来实现:
std::list<std::string> stringList = {"1", "2", "3", "4", "5"};
std::list<long> longList;
std::transform(stringList.begin(), stringList.end(), std::back_inserter(longList), stringToLong);
在这里,std::back_inserter(longList)用于在适当的位置插入新的元素,从而保持longList的尺寸与stringList相同。std::transform算法会对stringList中的每个元素都调用stringToLong()函数,并将返回值添加到longList中。
最后,我们可以打印转换后的结果:
for (long l : longList) {
std::cout << l << " ";
}
输出结果应该为:1 2 3 4 5。
总之,将list<string>转换成list<long>可以使用std::transform算法,并提供一个转换函数来将string类型的元素转换成long类型。