Вставка и извлечение элементов из вектора занимают больше времени, если век тор содержит больше элементов?
Нет. Время выполнения операций вставки и извлечения элементов вектора не зависит от количества элементов в нем.
В чем преимущество использования функции-члена reserve () ?
Она резервирует пространство для внутреннего буфера вектора, снижая частоту его по вторных резервирований при вставке элементов в вектор. В зависимости от характера хранимых в векторе объектов резервирование нового буфера вектора и копирование в него элементов из прежнего буфера может существенно снизить производительность.
Есть ли различие между вектором и двухсторонней очередью, когда дело доходит до вставки элементов?
Пока речь идет о вставке в конец с постоянным временем выполнения и вставке в се редину с пропорциональным временем выполнения, никакой разницы нет. Но вектор допускает вставку только в конец, а двухсторонняя очередь — в конец и в начало.
Коллоквиум
этом разделе предлагаются вопросы для самоконтроля и закрепления полученных знаний, а также упражнения, которые помогут применить на практике полученные навы ки. Попытайтесь самостоятельно ответить на эти вопросы и выполнить задания, а потом сверьте полученные результаты с ответами в приложении Г, “Ответы”. Если остались не ясными хотя бы некоторые из предложенных ниже вопросов, не приступайте к изучению материала следующего занятия.
Контрольные вопросы
Элементы могут быть вставлены в середину или в начало вектора за постоянное время?
2. М етод s i z e () моего вектора возвращ ает значение 10, а метод c a p a c i t y () —
Сколько еще элементов я могу вставить в него до повторного резервирования буфера?
3. Что делает функция pop b a c k () ?
422 ЗАНЯТИЕ 17. Классы динамических массивов библиотеки STL
4. Если v e c t o r < i n t > является динамическим массивом целых чисел, то динамиче
ским массивом какого типа является вектор vector?
Можно ли произвольно обращаться к элементам вектора? Если да, то как?
Какой тип итератора обеспечивает произвольный доступ к элементам вектора?
Упражнения
Н апиш ите автономную программу, которая получает введенное пользователей целое число и сохраняет его в векторе. Пользователь должен быть в состоянии в любой момент обратиться к хранящемуся в векторе значению, указав его индекс.
Усовершенствуйте программу из упраж нения 1 так, чтобы она могла сообщить пользователю, существует ли уже запрошенное значение в векторе.
Джек продает кувшины на eBay. Чтобы помочь ему с упаковкой и отгрузкой, на пишите программу, в которой он может вводить размеры каждого из изделий, со хранять их в векторе и выводить на экран.
ЗАНЯТИЕ 18
Do'stlaringiz bilan baham: |