Jakie są różnice między tablicą a wektorem w C ++? Przykładem różnic mogą być biblioteki, symbolika, umiejętności itp.
Szyk
Tablice zawierają określoną liczbę elementów określonego typu. Aby kompilator mógł zarezerwować wymaganą ilość miejsca podczas kompilacji programu, należy określić typ i liczbę elementów, które będzie zawierać tablica, gdy zostanie zdefiniowana. Kompilator musi być w stanie określić tę wartość podczas kompilacji programu. Po zdefiniowaniu tablicy należy użyć identyfikatora tablicy wraz z indeksem, aby uzyskać dostęp do określonych elementów tablicy. [...] tablice są indeksowane przez zero; to znaczy, pierwszy element ma indeks 0. Ten schemat indeksowania wskazuje na ścisły związek w C ++ między wskaźnikami i tablicami oraz reguły, które język definiuje dla arytmetyki wskaźników.
- Dokumentacja kieszonkowa C ++
Wektor
Wektor to sekwencja obiektów o dynamicznej wielkości, która zapewnia
operator[]
losowy dostęp w stylu tablicy . Funkcja członkowskapush_back
kopiuje swoje argumenty za pomocą konstruktora kopiującego, dodaje tę kopię jako ostatni element w wektorze i zwiększa jej rozmiar o jeden.pop_back
robi dokładnie odwrotnie, usuwając ostatni element. Wstawianie lub usuwanie elementów z końca wektora zajmuje zamortyzowany stały czas, a wstawianie lub usuwanie z dowolnego innego miejsca zajmuje czas liniowy. To są podstawy wektorów. Jest ich o wiele więcej. W większości przypadków wektor powinien być pierwszym wyborem zamiast tablicy w stylu C. Przede wszystkim mają dynamiczne rozmiary, co oznacza, że mogą rosnąć w razie potrzeby. Nie musisz przeprowadzać wszelkiego rodzaju badań, aby znaleźć optymalny rozmiar statyczny, jak w przypadku tablic C; wektor rośnie w razie potrzeby i można go ręcznie zmienić na większy lub mniejszy, jeśli zajdzie taka potrzeba. Po drugie, wektory oferują sprawdzanie granic za pomocąat
funkcji składowej (ale nie za pomocąoperator[]
), dzięki czemu możesz coś zrobić, jeśli odwołasz się do nieistniejącego indeksu, zamiast po prostu obserwować awarię programu lub gorzej, kontynuując wykonywanie z uszkodzonymi danymi.- Książka kucharska C ++