Які відмінності між масивом та вектором у C ++? Прикладом відмінностей можуть бути бібліотеки, символіка, здібності тощо.
Масив
Масиви містять конкретну кількість елементів певного типу. Щоб компілятор міг резервувати необхідну кількість місця під час компіляції програми, ви повинні вказати тип та кількість елементів, які буде містити масив при його визначенні. Компілятор повинен бути в змозі визначити це значення при складанні програми. Після того, як масив визначений, ви використовуєте ідентифікатор масиву разом з індексом для доступу до конкретних елементів масиву. [...] масиви нульово індексуються; тобто перший елемент знаходиться в індексі 0. Ця схема індексації вказує на тісний взаємозв'язок у C ++ між вказівниками та масивами та правила, які мова визначає для арифметики вказівника.
- Посилання на кишеньковий C ++
Вектор
Вектор - це послідовність об'єктів з динамічним розміром, що забезпечує
operator[]
випадковий доступ у стилі масиву . Функція-членpush_back
копіює свої аргументи через конструктор копій, додає цю копію як останній елемент у векторі та збільшує його розмір на одиницю.pop_back
робить навпаки, видаляючи останній елемент. Вставлення або видалення елементів з кінця вектора вимагає амортизованого постійного часу, а вставлення або видалення з будь-якого іншого місця займає лінійний час. Це основи векторів. Їх набагато більше. У більшості випадків вектор повинен бути вашим першим вибором для масиву стилю С. Перш за все, вони мають динамічний розмір, а значить, можуть рости в міру необхідності. Вам не доведеться робити всілякі дослідження, щоб визначити оптимальний статичний розмір, як у випадку з масивами С; вектор зростає у міру необхідності, і його можна змінити в більший чи менший розмір вручну, якщо вам потрібно. По-друге, вектори пропонують перевірку меж зat
функцією члена (але не зoperator[]
), так що ви можете щось робити, якщо ви посилаєтесь на неіснуючий індекс, а не просто спостерігати за тим, як ваша програма виходить з ладу або ще гірше, продовжуючи виконання з пошкодженими даними.- Кулінарна книга C ++