Массивы и векторы: вводные сходства и различия [закрыто]

Каковы различия между массивом и вектором в C ++? Примером различий могут быть библиотеки, символика, способности и т. Д.

массив

Массивы содержат определенное количество элементов определенного типа. Чтобы компилятор мог зарезервировать необходимый объем пространства при компиляции программы, вы должны указать тип и количество элементов, которые будет содержать массив при его определении. Компилятор должен быть в состоянии определить это значение при компиляции программы. Как только массив был определен, вы используете идентификатор для массива вместе с индексом для доступа к определенным элементам массива. [...] массивы с нулевой индексацией; то есть первый элемент имеет индекс 0. Эта схема индексации указывает на тесную связь в C ++ между указателями и массивами и правилами, которые язык определяет для арифметики указателей.

- C ++ Pocket Reference

Вектор

Вектор представляет собой последовательность объектов динамического размера, которая обеспечивает стиль массиваoperator[] произвольный доступ. Функция-членpush_back копирует свои аргументы через конструктор копирования, добавляет эту копию как последний элемент в векторе и увеличивает его размер на единицу.pop_back делает прямо противоположное, удаляя последний элемент. Для вставки или удаления элементов в конце вектора требуется амортизированное постоянное время, а для вставки или удаления из любого другого места требуется линейное время. Это основы векторов. Их намного больше. В большинстве случаев вектор должен быть вашим первым выбором по сравнению с массивом в стиле C. Прежде всего, они имеют динамический размер, что означает, что они могут расти по мере необходимости. Вам не нужно проводить всевозможные исследования, чтобы определить оптимальный статический размер, как в случае массивов C; вектор увеличивается по мере необходимости, и его размер можно изменить вручную, увеличив или уменьшив его вручную. Во-вторых, векторы предлагают проверку границ с помощьюat функция-член (но не сoperator[]), так что вы можете сделать что-то, если вы ссылаетесь на несуществующий индекс, а не просто наблюдаете сбой вашей программы или еще хуже, продолжая выполнение с поврежденными данными.

- C ++ Cookbook

Ответы на вопрос(3)

Ваш ответ на вопрос