c++ - How to convert std::queue to std::vector -


i need make use of queue of doubles because of properties has ordered container. want pass queue class constructor accepts vectors. if directly following error:

candidate constructor not viable: no known conversion 'std::queue' 'std::vector &' 2nd argument

how cast queue vector?

the correct container model both queue_like behaviour , vector-like behaviour std::deque.

this has advantages of:

  1. constant-time insertion , deletion @ either end of deque

  2. ability iterate elements without destroying deque

std::deque supports begin() , end() methods means can construct vector (with compatible value-type) directly.

#include <vector> #include <deque>  class acceptsvectors { public:   acceptsvectors(std::vector<double> arg); };  int main() {     std::deque<double> myqueue;      auto av = acceptsvectors({myqueue.begin(), myqueue.end()}); } 

a non-mutating conversion of queue vector not possible.


Comments