这里有一些背景。我有一个二叉树迭代器(比如按顺序)。它通过将指针压入堆栈顶部来跟踪其当前节点的父节点。现在我还想要互操作性,即转换为的iterator能力const_iterator。但是iterator有std::stack<pointer>和const_iterator有std::stack<const pointer>。
实现相同效果的任何其他方式也是值得赞赏的。
编辑
目前我已经放弃了std::stack完全使用的想法。我正在使用std::deque和push_back()++ pop_back()。back()为了转换std::deque<pointer>为std::deque<const pointer>,我只是在使用std::copy( std::begin(ptrDeque), std::end(ptrDeque), std::begin(constPtrDeque) );,而且这个设置很简单。
出于好奇,我仍然想回答这个问题。