gpt4 book ai didi

c++ - 如何将整个 vector 复制到队列中?

转载 作者:可可西里 更新时间:2023-11-01 17:05:50 34 4
gpt4 key购买 nike

我希望将 vector 的全部内容复制到 C++ 中的队列中。这是内置函数还是必须遍历每个元素?

最佳答案

如果你创建一个新的队列,你可以使用构造函数:

std::vector<int> v = get_vector();

std::queue<long int, std::deque<long int>> q(std::deque<long int>(v.begin(),
v.end()));

(您可以根据需要更改底层容器,不过 deque 可能是最好的。)

如果队列已经存在,则没有基于范围的算法,但您可以轻松编写自己的算法:

template <typename Iter, typename Q>
push_range(Q & q, Iter begin, Iter end)
{
for ( ; begin != end; ++begin)
q.push(*begin);
}

顺便说一句:如果您的算法需要那么大的灵 active ,您最好一开始就使用 std::deque。容器适配器(queuestack)应该只在您想明确地说“这是我想要的行为”(即推送/弹出)时使用。

关于c++ - 如何将整个 vector 复制到队列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168127/

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