我在女巫中提出了一个 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/