我正在制作一个 C++ 问题,我必须编写一个带有列表的函数。问题是我根本不理解列表,因为我不知道如何使用指针或迭代器。有什么方法可以将所有元素从该列表移动到数组或向量吗?这会让我的生活更轻松。
如何将列表中的所有元素移动到数组或向量或其他任何元素
您使用该std::move功能。
std::list<foo> l;
std::vector<foo> r;
r.reserve(std::size(l));
std::move(std::begin(l), std::end(l), std::back_inserter(r));
Run Code Online (Sandbox Code Playgroud)
如果您移动的对象不是基本类型,则移动(而不是复制)通常会快得多。
如果您可以选择vector<foo>随时随地创建,请使用std::move_iterators
std::list<foo> l;
std::vector<foo> r(std::move_iterator(std::begin(l)), std::move_iterator(std::end(l)));
Run Code Online (Sandbox Code Playgroud)