2012-05-11 21 views
31

W C++ można utworzyć tablicę predefiniowanego rozmiaru, na przykład 20, z int myarray[20]. Jednakże, the online documentation on vectors nie wykazuje podobnego sposobu inicjowania wektorów: Zamiast tego wektor powinien zostać zainicjowany, na przykład, std::vector<int> myvector (4, 100);. Daje to wektor o rozmiarze 4, przy czym wszystkie elementy mają wartość 100.Jak utworzyć wektor o rozmiarze zdefiniowanym przez użytkownika, ale bez predefiniowanych wartości?

W jaki sposób wektor może być inicjalizowany tylko z predefiniowanym rozmiarem i bez zdefiniowanej wartości, jak w przypadku tablic?

+0

odczytać docs? http://www.cplusplus.com/reference/stl/vector/vector/ http://www.cplusplus.com/reference/stl/vector/resize/ –

+0

@JesseGood - Łączę się z obiema edycjami, z grubymi palcami za pierwszym razem;) –

+2

@BrianRoach: również możesz chcieć przeczytać [What's wrong with cplusplus.com?](http://programmers.stackexchange.com/questions/88241/whats-wrong-with-cplusplus-com). –

Odpowiedz

39

Z konstruktora:

// create a vector with 20 integer elements 
std::vector<int> arr(20); 

for(int x = 0; x < 20; ++x) 
    arr[x] = x; 
+0

Niestety, nie działa dla mnie, OS X Mavericks LLVM, domyślnie dla xcode 4.2+. Z jakiego kompilatora korzystasz? – patrik

+0

Nic magicznego w kompilatorach, z których korzystałem. To wszystko jest zachowaniem standardowym. Jeśli ten dokładny kod nie działa, podejrzany kompilator lub rozszerzenia xcode, które go łamią. – Chad

+1

Ok Widzę, myślę, że LLVM używa clang dla C++, więc to jest dziwne. Myślałem, że ten wektor powinien być postrzegany mniej więcej tak, jak zastępowanie tablicy w dzisiejszych czasach i że powinno się znaleźć odzwierciedlenie w składni (co powinno być tym, co zostało napisane przez ciebie). Dziwne, że mój kompilator na to nie pozwala. Jednak celem tego komentarza jest dodanie rozszerzenia do tego, co już zostało napisane; Tak więc, 'std :: vector arr = std :: vector (20);' działało dobrze dla mnie, konkretnie stwierdzając, że chcę użyć konstruktora dla wektora. – patrik

Powiązane problemy