2
std::stack
を使用して、プログラムの可能性のリストを保持しています。std :: stackの背後にあるコンテナを取得します。
std::stack<int, std::deque<int> > myStack;
は今、デバッグ目的のみのために、私は私のstd::stack
(std::deque
として例えば)のすべての要素にアクセスできるようにしたいです。しかし、次の構文は違法です:
std::deque<int> myDeque = myStack; // Does not compile
最も簡単な方法は何ですか?
私はそれを行うような方法は次のとおりです。
std::stack<int, std::deque<int> > newStack = myStack;
std::deque<int> myDeque;
while(!newStack.empty()){
myDeque.push_back(newStack.top());
newStack.pop();
}
が、それは少し醜いです。
それは 'protected'メンバーですので、何のことは「アクセス」ではありませんありません。あなたが必死ならば、あなたはそれをハックすることができます。 –