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';
}
}
