まず、myVector
自明ではないコンストラクターがあるため、何もしなくても初期化されます。のシーケンスへのポインタを指定して初期化したい場合はint
、長さも知っておく必要があります。ポインターと長さの両方がある場合は、次のことができます。
: myVector( pInitialValues, pInitialValues + length )
別の方法として (より慣用的に)、呼び出し元に加算を行わせ、コンストラクターに begin と end の 2 つのポインターを持たせることもできます。
: myVector( pBegin, pEnd )
std::begin()
(呼び出し元が C++11 を使用している場合は、 andを使用して C スタイルの配列からこれらを取得できstd::end()
ます。)
編集:
完全に明確にするために、 an だけでは何かを行うのint*
に十分な情報が提供されません。Anint*
は、C スタイルの配列の最初の要素を指します。また、要素数、終了ポインタなど、終了を見つける何らかの方法も必要です。特殊なケースでは、他の手法を使用できます。つまり、C スタイルの配列に負でない数値のみが含まれている場合は-1
、センティナルとして使用できます: myVector( pVector, std::find(
pVector, NULL, -1 ) )
。ただし、これらは特殊なケースです。