0
Stackを使用して実装されたテンプレート化されたクラスのend関数の記述は、配列の境界を越えて実装されるとどのくらい正確になりますか?テンプレート付きスタックを使用したイテレータの記述
これは私の現在のエンド()関数です:
template<typename T>
StackIterator<T> Stack<T>::end() const
{
//iterator takes a stack and an item of type <T>
StackIterator<T> goodBye(*this, items[-1]);
return goodBye;
}//end end function
この現在の実装では、プリミティブ型のために動作しますが、文字列で使用されるメモリの場所で bad_alloc(...)をスローします。
これをもっと多目的にする方法についてのアイデアはありますか?
しかし、これは、上から下に行くのとは対照的に、スタックの下から上に向かって繰り返すことを意味します。そして、std :: stackを使うことができることは分かっていますが、宿題はゼロからすべて作成することでした。 – D1990c
@ D1990c:あなたの実装はその方向性を逆転させるべきです。配列は進む。 –
配列がどの方向にトラバースされているかにかかわらず、配列にすべての位置に要素がある場合、これを実行しようとすると同じエラーが発生します – D1990c