you can use std::queue (but leave this version)