Container.Insert

Container.Insert

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

言語: Visual Basic    C#

最終更新日付:2012/06/28 12:17:38

概要

シーケンスの指定位置に要素を挿入します。結果として、挿入された要素を指す反復子を返します。

 

サポートするクラス

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

 

形式

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

Vector, Deque, List

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

Public Function Insert(ByVal itr As Iterator, ByVal v As T) As Iterator
Public Sub Insert(ByVal itr As Iterator, ByVal cnt As Integer, ByVal v As T)
Public Sub Insert(ByVal itr As Iterator, _
                  ByVal itr1 As InputIterator(Of T), ByVal itr2 As InputIterator(Of T))

public Iterator Insert( Iterator itr, T v )
public void Insert( Iterator itr, int cnt, T v )
public void Insert( Iterator itr, InputIterator<T> itr1, InputIterator<T> itr2 )

上記における最初のオーバーロードでは、itr が指す位置に値 v を挿入し、挿入された要素を指す反復子を返します。この時、itr は Insert を呼び出す対象のコンテナが管理するシーケンス内の要素を指す有効な反復子でなければなりません。

2番目のオーバーロードでは、itr が指す位置に cnt 個の v を挿入します。この時、itr は Insert を呼び出す対象のコンテナが管理するシーケンス内の要素を指す有効な反復子でなければなりません。

3番目のオーバーロードでは、itr が指す位置に範囲 [itr1, itr2) に含まれる要素を挿入します。この時、itr は Insert を呼び出す対象のコンテナが管理するシーケンス内の要素を指す有効な反復子でなければならず、itr2 は itr1 から到達可能でなければなりません。

 

Set, Map

Set, Map には、以下のオーバーロードが存在します。ここで Iterator はそれぞれのコンテナの反復子型を意味し、T はコンテナの要素型を示しています。ただし、Map では T は Map(Of K, V) とした場合の Pair(Of K, V) を意味します。

Set, Map には、以下のオーバーロードが存在します。ここで Iterator はそれぞれのコンテナの反復子型を意味し、T はコンテナの要素型を示しています。ただし、Map では T は Map<K, V> とした場合の Pair<K, V> を意味します。

Public Function Insert(ByVal v As T) As Pair(Of Iterator, Boolean)
Public Function Insert(ByVal itr As Iterator, ByVal v As T) As Iterator
Public Sub Insert(ByVal itr1 As InputIterator(Of T), ByVal itr2 As InputIterator(Of T))

public Pair<Iterator, bool> Insert( T v )
public Iterator Insert( Iterator itr, T v )
public void Insert( InputIerator<T> itr1, InputIerator<T> itr2 )

上記における最初のオーバーロードでは、コンテナに値 v を挿入します。挿入位置は順序比較のための述語によって自動的に決定されます。復帰値として、反復子と真偽値の Pair を返します。返される真偽値は実際に挿入が行なわれたか否かを示すもので、コンテナに同一キーとなる既存要素が存在した場合は偽が設定されます。返される反復子は v と同順位となる要素を指します。

2番目のオーバーロードでは、コンテナに値 v を挿入します。コンテナに同一キーとなる既存要素が存在した場合は挿入は行なわれません。返される反復子は v と同順位となる要素を指します。STL では、itr が指す要素の直後に挿入される場合に(ほぼ)定数時間で処理が行なわれることになっていますが、現在の NGL の実装では itr は完全に無視され、常に対数時間で挿入が行なわれます。このオーバーロードは、STL とインターフェースを揃える目的で提供されているものです。

3番目のオーバーロードでは、範囲 [itr1, itr2) に含まれる要素をコンテナに追加します。この時、itr2 は itr1 から到達可能でなければなりません。

 

MultiSet, MultiMap

MultiSet, MultiMap には、以下のオーバーロードが存在します。ここでIterator はそれぞれのコンテナの反復子型を意味し、T はコンテナの要素型を示しています。ただし、MultiMap では T は Map(Of K, V) とした場合の Pair(Of K, V) を意味します。

MultiSet, MultiMap には、以下のオーバーロードが存在します。ここでIterator はそれぞれのコンテナの反復子型を意味し、T はコンテナの要素型を示しています。ただし、MultiMap では T は Map<K, V> とした場合の Pair<K, V> を意味します。

Public Function Insert(ByVal v As T) As Iterator
Public Function Insert(ByVal itr As Iterator, ByVal v As T) As Iterator
Public Sub Insert(ByVal itr1 As InputIterator(Of T), ByVal itr2 As InputIterator(Of T))

public Iterator Insert( T v )
public Iterator Insert( Iterator itr, T v )
public void Insert( InputIerator<T> itr1, InputIerator<T> itr2 )

上記における最初のオーバーロードでは、コンテナに値 v を挿入します。挿入位置は順序比較のための述語によって自動的に決定されます。復帰値として、挿入された要素を指す反復子を返します。

2番目のオーバーロードでは、コンテナに値 v を挿入します。復帰値として、返される反復子は挿入された要素を指す反復子が返されます。STL では、itr が指す要素の直後に挿入される場合に(ほぼ)定数時間で処理が行なわれることになっていますが、現在の NGL の実装では itr は完全に無視され、常に対数時間で挿入が行なわれます。このオーバーロードは、STL とインターフェースを揃える目的で提供されているものです。

3番目のオーバーロードでは、範囲 [itr1, itr2) に含まれる要素をコンテナに追加します。この時、itr2 は itr1 から到達可能でなければなりません。

 

 


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