Najpierw myVector
zostanie zainicjowany, nawet jeśli nic, ponieważ ma niebanalną konstruktorzy zrobić. Jeśli chcesz zainicjować go podając wskaźnik do sekwencji int
, musisz również znać długość. Jeśli masz zarówno wskaźnik i długości, można zrobić:
: myVector(pInitialValues, pInitialValues + length)
Alternatywnie (i więcej idiomatically), musisz pozwolić rozmówcy zrobić dodatek i mieć konstruktor ma dwa wskaźniki, się początek i koniec: (. Jeśli rozmówca używa C++ 11, może on uzyskać je od tablica C styl używając std::begin()
i std::end()
)
: myVector(pBegin, pEnd)
EDYTOWANIE:
Po prostu, aby było idealnie jasne: tylko int*
nie zapewnia wystarczającej informacji, aby zrobić cokolwiek. int*
wskazuje na pierwszy element tablicy w stylu C; potrzebujesz również jakiegoś sposobu na znalezienie końca: liczby elementów, wskaźnika końcowego itp. W specjalnych przypadkach można użyć innych technik; to jest, jeśli tablica w stylu C zawiera tylko liczby nieujemne, można użyć -1
jako znacznika i coś w rodzaju : myVector(pVector, std::find( pVector, NULL, -1))
. Są to jednak przypadki szczególne.
W jaki sposób chcesz zainicjować swój 'std :: vector'? (Jaka konkretna forma jego konstruktorów chcesz użyć?) –
To zależy. Co masz na myśli przez "zainicjować"? W stosunku do której wersji standardu C++ pracujesz? – Johnsyweb
@ Mark Garcia z int * p_Vector – CLearner