ここにいくつかの背景があります。私は二分木反復子を持っています(順番に言ってください)。スタックの一番上にポインターをプッシュすることで、現在のノードの親ノードを追跡しています。今、相互運用性、つまり にキャストできる機能も必要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) );
好奇心から、この質問への回答を引き続き希望します。