gpt4 book ai didi

c++ - 如何将列表中的所有元素移动到数组或 vector 或其他任何内容

转载 作者:行者123 更新时间:2023-12-04 14:35:15 24 4
gpt4 key购买 nike

我在女巫中提出了一个 c++ 问题,我必须编写一个接受列表的函数。问题是我根本不了解列表,因为我不知道如何使用指针或迭代器。有什么方法可以将所有元素从该列表移动到数组或 vector ?这会让我的生活更轻松。

最佳答案

您可以使用 std::copy从一个容器(您的列表)复制到另一个容器(您的载体):

#include <list>
#include <vector>
#include <iostream>

int main() {
std::list<int> list = {1, 2, 3, 4, 5};
std::vector<int> vec;
std::copy(std::begin(list), std::end(list), std::back_inserter(vec));

for (auto element: vec) {
std::cout << element << ", ";
}
std::cout << "\n";
}
https://godbolt.org/z/73rj494f4

您还可以手动将元素从一个容器复制到另一个容器。然而,虽然这可能更容易理解,但它并不那么优雅:
#include <list>
#include <vector>
#include <iostream>

int main() {
std::list<int> list = {1, 2, 3, 4, 5};
std::vector<int> vec;
vec.reserve(list.size()); // Optional.

// Copy the elements manually
for (auto element: list) {
vec.push_back(element);
}

// Manually print the elements in vec.
for (auto element: vec) {
std::cout << element << ", ";
}
std::cout << "\n";
}
https://godbolt.org/z/faf8ahr75

关于c++ - 如何将列表中的所有元素移动到数组或 vector 或其他任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68381752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com