这里有一些背景。我有一个二叉树迭代器(比如按顺序)。它通过将指针压入堆栈顶部来跟踪其当前节点的父节点。现在我还想要互操作性,即转换为的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) );
,而且这个设置很简单。
出于好奇,我仍然想回答这个问题。