繁体   English   中英

std::copy 用于将向量复制到 priority_queue

[英]std::copy for copying vector to priority_queue

我正在尝试将std::vector复制到std::priority_queue而以下两种方法正在工作。

vector<int> parts = { 8, 4, 6, 12, 57, 28};                          //source
priority_queue<int, vector<int>, greater<int>> minHeap;              //target

方法1:

all_of(parts.begin(), parts.end(), [&minHeap](int& part){minHeap.push(part); return true;});

方法2:

for(int& part: parts) minHeap.push(part);

但是,我想知道std::copy是否可以这样做?

是的,可以使用std::copy()来完成,但前提是您编写(或找到)一个自定义OutputIterator ,该自定义 OutputIterator 在写入迭代器时调用队列的push()方法。 标准库没有用于调用push()的内置迭代器(但它具有用于push_front()std::front_insert_iterator 、用于push_back()std::back_insert_iterator 、用于insert()std::insert_iterator等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM