【发布时间】:2010-12-15 23:05:34
【问题描述】:
我想使用std::copy 将元素插入到这样的队列中:
vector<int> v;
v.push_back( 1 );
v.push_back( 2 );
queue<int> q;
copy( v.begin(), v.end(), insert_iterator< queue<int> >( q, q.front() ) );
但是这个编译失败,抱怨begin不是std::queue的成员。
注意:我也用std::inserter 尝试过——这也失败了,这一次说'reference' 不是'std::queue' 的成员。 std::back_inserter 和 std::back_insert_iterator 也会失败并出现相同的错误。
我是否遗漏了一些明显的东西,或者 insert_iterators 只是不适用于队列?
【问题讨论】:
-
虽然你得到的答案很好,但我个人会避免使用 std::queue 和任何其他残缺的容器适配器。
-
是的,sbi 和 Naveen 建议使用双端队列是一个不错的选择。
标签: c++ stl copy queue insert-iterator