std::stack
std::map