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