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

标签 c++ list

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

相关文章:

php - PHP 和 MySQL 中的嵌套列表

c++ - C++ 标准的第 3 方库

c++ - SDL_PollEvent 未拾取所有事件

c++ - 使用 winhttp.h 许多未知类型说明符

JAVA从数组转为列表并使用shuffle方法

python - 获取元组列表第一个索引?

c++ - 可跨代码文件访问的变量

c++ - 在 CLion 上链接 Qt

java - 将 List<Object []> 拆分为 List<String> 的最有效方法

r - 计算列表子列表中高于特定阈值的元素数量