Container.New

Container.New

 >> NGL >> リファレンス >> Containerカテゴリ >> コンテナのメソッド >> Container.New

言語: Visual Basic    C#

最終更新日付:2012/06/25 17:55:03

概要

このページでは、コンテナのコンストラクタについて説明しています。

 

サポートするクラス

このメソッドは、以下のコンテナがサポートします。

 

形式

このメソッドには、コンテナの種類に応じて互いに異なる複数のオーバーロードが存在します。以下、それぞれについて説明します。

Vector, Deque, List

Vector, Deque, List には、以下のオーバーロードが存在します。ここで Container はそれぞれのコンテナの型を示し、T はコンテナの要素型を示しています。

Public Sub New()
Public Sub New(ByVal cont As Container)
Public Sub New(ByVal cnt As Integer)
Public Sub New(ByVal cnt As Integer, ByVal v As T)
Public Sub New(ByVal itr1 As InputIterator(Of T), ByVal itr2 As InputIterator(Of T))
Public Sub New(ByVal ParamArray values() As T)

public Container( )
public Container( Container cont )
public Container( int cnt )
public Container( int cnt, T v )
public Container( InputIterator<T> itr1, InputIterator<T> itr2 )
public Container( params T[] values )

最初のオーバーロードでは、要素数0のコンテナを作成します。2番目はコピーコンストラクタで、パラメータとして渡したコンテナのコピーを作成します。

3番目と4番目のオーバーロードは要素数を指定するコンストラクタです。要素数だけを指定する場合、それぞれの要素は初期値が設定され、2つめのパラメータを指定する場合、全ての要素がその値で初期化されます。5番目は要素型の入力反復子の組みを指定することにより、それらが構成するシーケンスでコンテナを初期化します。

6番目のオーバーロードは任意個数の要素を指定してコンテナを初期化するコンストラクタです。これは STL には対応するものがありません。

 

Set, MultiSet

Set, MultiSet には、以下のオーバーロードが存在します。ここで Container はそれぞれのコンテナの型を示し、T はコンテナの要素型を示しています。

Public Sub New(ByVal pred As BinaryFunction(Of T, T, Integer))
Public Sub New(ByVal cont As Container)
Public Sub New(ByVal itr1 As InputIterator(Of T), ByVal itr2 As InputIterator(Of T), _
               ByVal pred As BinaryFunction(Of T, T, Integer))
Public Sub New(ByVal pred As BinaryFunction(Of T, T, Integer), ByVal ParamArray values() As T)

public Container( BinaryFunction<T, T, int> pred )
public Container( Container cont )
public Container( InputIterator<T> itr1, InputIterator<T> itr2, BinaryFunction<T, T, int> pred )
public Container( BinaryFunction<T, T, int> pred, params T[] values )

最初のオーバーロードでは、順序付けのための述語だけを指定し、要素数0のコンテナを作成します。2番目はコピーコンストラクタで、パラメータとして渡したコンテナのコピーを作成します。順序付けのための述語は、コピー元のコンテナのものが複製されます。3番目は要素型の入力反復子の組みと順序付けのための述語を指定することにより、それらが構成するシーケンスでコンテナを初期化します。

4番目のオーバーロードは任意個数の要素を指定してコンテナを初期化するコンストラクタです。順序付けのための述語も指定する必要があります。これは STL には対応するものがありません。なお、Set の場合、与えた要素群に重複(つまり pred による順序付けにおいて等順位となる要素)が存在する場合、最初に現われる要素だけがコンテナに追加されます。

 

Map, MultiMap

Map, MultiMap には、以下のオーバーロードが存在します。ここで Container はそれぞれのコンテナの型を示し、K は連想配列のキー型、V は値の型を示しています。

Public Sub New(ByVal pred As BinaryFunction(Of K, K, Integer))
Public Sub New(ByVal cont As Container)
Public Sub New(ByVal itr1 As InputIterator(Of Pair(Of K, V)), _
               ByVal itr2 As InputIterator(Of Pair(Of K, V)), _
               ByVal pred As BinaryFunction(Of K, K, Integer))
Public Sub New(ByVal pred As BinaryFunction(Of K, K, Integer), _
               ByVal ParamArray values() As Pair(Of K, V))

public Container( BinaryFunction<K, K, int> pred )
public Container( Container cont )
public Container( InputIterator<Pair<K, V>> itr1,
                  InputIterator<Pair<K, V>> itr2, BinaryFunction<K, K, int> pred )
public Container( BinaryFunction<K, K, int> pred, params Pair<K, V>[] values )

最初のオーバーロードでは、順序付けのための述語だけを指定し、要素数0のコンテナを作成します。2番目はコピーコンストラクタで、パラメータとして渡したコンテナのコピーを作成します。順序付けのための述語は、コピー元のコンテナのものが複製されます。3番目は要素型の入力反復子の組みと順序付けのための述語を指定することにより、それらが構成するシーケンスでコンテナを初期化します。

4番目のオーバーロードは任意個数の要素を指定してコンテナを初期化するコンストラクタです。順序付けのための述語も指定する必要があります。これは STL には対応するものがありません。なお、Map の場合、与えた要素群に重複(つまり pred による順序付けにおいて等順位となる要素)が存在する場合、最初に現われる要素だけがコンテナに追加されます。

 

コンテナアダプタ

Stack, Queue には、2種類のコンストラクタがあります。パラメータをとらないコンストラクタと、内部で使用するコンテナを指定するコンストラクタです。

Public Sub New()
Public Sub New(ByVal cont As Container)

public Container()
public Container( Container cont )

上記において Container は、Stack では PushableBackContainer, Queue では PushableFrontContainer を意味します。パラメータをとらないコンストラクタを使用してオブジェクトを作成した場合、Stack, Queue ともに内部で使用するコンテナとして Deque が使用されます。

PriorityQueue のコンストラクタには4種類のオーバーロードがあります。

Public Sub New(ByVal pred As BinaryFunction(Of T, T, Integer))
Public Sub New(ByVal pred As BinaryFunction(Of T, T, Integer), ByVal cont As RandomAccessContainer(Of T))
Public Sub New(ByVal itr1 As InputIterator(Of T), _
               ByVal itr2 As InputIterator(Of T), ByVal pred As BinaryFunction(Of T, T, Integer))
Public Sub New(ByVal itr1 As InputIterator(Of T), _
               ByVal itr2 As InputIterator(Of T), _
               ByVal pred As BinaryFunction(Of T, T, Integer), ByVal cont As RandomAccessContainer(Of T))

public PriorityQueue( BinaryFunction<T, T, int> pred )
public PriorityQueue( BinaryFunction<T, T, int> pred, RandomAccessContainer<T> cont )
public PriorityQueue( InputIterator<T> itr1,
                      InputIterator<T> itr2, BinaryFunction<T, T, int> pred )
public PriorityQueue( InputIterator<T> itr1, InputIterator<T> itr2,
                      BinaryFunction<T, T, int> pred, RandomAccessContainer<T> cont )

どのオーバーロードでも、パラメータとして要素の順序付けに使用される述語として pred が要求されます。また、cont を指定するコンストラクタでは、内部で使用するコンテナを指定します。cont を指定しない場合、内部で使用するコンテナとして Vector が選択されます。また、InputIterator の組みを指定するコンストラクタでは、作成された PriorityQueue に範囲 [itr1, itr2) の要素が追加されます。

 

 


Copyright(C) 2011-2012 Show MATSUOKA.
Powered by Prefab.