, myVector
hiçbir şey, dışı önemsiz kurucular sahip olduğu için bile, başlatılır. için int
dizisine bir işaretçi verdikten sonra, uzunluğunu da bilmeniz gerekir. , bir (daha deyimsel ve)
: myVector(pInitialValues, pInitialValues + length)
Alternatif
, sen, arayan ilavesi yapalım edeceğiz ve yapıcı iki işaretçiler almak zorunda: Hem bir işaretçi ve uzunluk varsa, yapabileceğiniz başlar ve bir uç (. arayan C++ 11 kullanarak ise, o bu elde bir C stili dizi std::begin()
ve std::end()
kullanılarak)
: myVector(pBegin, pEnd)
EDIT:
Sadece mükemmel bir şekilde anlaşılır olması için: int*
sadece hiçbir şey yapmanıza yetecek kadar bilgi sağlamamaktadır. Bir int*
, bir C stili dizisinin birinci elemanı olan işaret eder; 'un sonunu bulmak için de bir yol gerekir: bir eleman sayısı, bir uç gösterici, vb. özel durumlarda, diğer teknikler kullanılabilir; Örneğin, C stili dizisi yalnızca negatif olmayan sayılar içeriyorsa, -1
'u bir posta kutusuna ve : myVector(pVector, std::find( pVector, NULL, -1))
gibi bir şey kullanabilirsiniz. Ancak bunlar özel durumlar.
std :: vector'nızı hangi yolla başlatmak istiyorum? (Kurucularının hangi özel biçimini kullanmak istiyorsunuz?) –
Bu, bağlıdır. "İlklendir" ile ne demek istiyorsun? Hangi C++ standardına karşı çalışıyorsunuz? – Johnsyweb
@Mark Garcia with int * p_Vector – CLearner