是否有一个单线可以将 list<T>
转换为 vector<T>
?
谷歌搜索返回给我很多使用手动、冗长转换的结果,这让我呕吐。我们是否应该费尽心思去做像列表到向量转换这样简单的事情?
原文由 Graviton 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否有一个单线可以将 list<T>
转换为 vector<T>
?
谷歌搜索返回给我很多使用手动、冗长转换的结果,这让我呕吐。我们是否应该费尽心思去做像列表到向量转换这样简单的事情?
原文由 Graviton 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一种简单的方法:
list<int> l {1, 2, 3, 4};
vector<int> v(l.begin(), l.end());
原文由 A-Sharabiani 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答477 阅读✓ 已解决
您只能使用列表中的所有元素创建一个新向量:
其中
l
是std::list<T>
。这会将列表中的所有元素复制到向量中。从 C++11 开始,如果您不再需要原始列表,这可以提高效率。您可以将所有元素移动到向量中,而不是复制: