0

プライベート メンバーとしてリスト オブジェクトを使用してテンプレート クラスを作成しています。

 .
 .
 .
 private:

list<E> listObject;

 };

最初のコンストラクターは、容量が 10 のリスト オブジェクトを作成する必要があります。

 template<class T, class E>
 Queue<T,E>::Queue()
 {
listObject.resize(10); 

 }

また

 template<class T, class E>
 Queue<T,E>::Queue()
 {
listObject = new list<E>(10); 

 }

または他のアイデア?

4

3 に答える 3

1

最も慣用的なオプションは、目的のサイズでリストを初期化することです。これは、コンストラクターの初期化リストで行われます。

Queue<T,E>::Queue() : listObject(10) 
{
  ....
}

これにより、デフォルトで構築された 10 個のオブジェクトのリストが残ります (実際に必要かどうかは別の問題です)。

C++11 では、宣言の時点でデータ メンバーを初期化できることに注意してください。したがって、これを行うこともできます:

template <typename T, typename E> Queue
{
  ....
  list<E> listObject = list<E>{10};
};

詳細はstd::listこちら

于 2013-11-04T06:41:17.107 に答える