Iteration:
Iteration is very basic and important operation of any container type like std::vector, std::deque or std::list.
std::queue<int> q; for(int i = 0; i <= 10; i++){ q.push(i); } for(int i = 0; i <= 10; i++){ std::cout << q.pop() << '\n'; }
Shuffle Queue:
Shuffling with extra space (using another deque)can be done as follows:
#include <iostream> #include <queue> #include <algorithm> #include <random> #include <deque> int main(){ std::queue<int> q; for(int i = 0; i <= 10; i++){ q.push(i); } std::deque<int> d; for(int i = 0; i <= 10; i++){ d.push_back(q.pop()); } unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); std::shuffle (d.begin(), d.end(), std::default_random_engine(seed)); std::queue<int> empty; std::swap(q, empty); std::for_each(d.begin(), d.end(), [&q](const auto & i){q.push(i);}); std::for_each(d.begin(), d.end(), [&q](const auto & i){std::cout << i << '\n';}); for((int i = 0; i <= 10; i++){ std::cout << q.pop() << '\n'; } }