如何从一个list<int>初始化一个vector<double>?从一个vector<int>又该如何创建?编写代码验证你的答案。
时间: 2024-12-25 09:36:37 浏览: 5
要从`list<int>`初始化一个`vector<double>`,你可以使用范围初始化(Range Initialization),虽然它们的类型不同,但可以通过逐个转换元素来实现。这里有一个示例:
```cpp
#include <iostream>
#include <vector>
#include <list>
#include <initializer_list>
int main() {
std::list<int> intList = {1, 2, 3, 4, 5}; // 假设这是你的int列表
// 范围初始化 vector<double>
std::vector<double> doubleVec(intList.begin(), intList.end());
for (const auto& val : doubleVec) {
std::cout << "Converted value: " << static_cast<double>(val) << '\n';
}
// 从vector<int>创建vector<double>同样可以这样做
std::vector<int> intVector = {6, 7, 8, 9, 10};
std::vector<double> anotherDoubleVec(intVector.begin(), intVector.end());
return 0;
}
```
这段代码首先将`intList`中的每个整数转换成`double`,然后通过范围初始化创建了一个`vector<double>`。注意我们使用了`static_cast<double>(val)`来确保正确的类型转换。
阅读全文