vector::size в C++ (с примерами)
Привет! Сегодня мы погрузимся в удивительный мир C++ и рассмотрим удобную функцию контейнера std::vector
- функцию size
. Начнем с краткого обзора и продемонстрируем её использование на простых примерах.
Получение количества элементов в векторе в C++
Если представить std::vector
как коробку, в которой вы можете хранить и организовывать свои данные, то функция size
просто сообщает вам, сколько элементов находится в этой коробке.
Вот базовая сигнатура функции size
:
size_type size() const;
- Она ничего не принимает.
- Возвращает размер вектора в виде числа. Это число имеет тип
size_type
, что является разновидностью беззнакового числа.
Простой пример:
Представьте, что у вас есть коробка (std::vector
), и вы хотите узнать, насколько она заполнена. Вот как это сделать:
#include <iostream>
#include <vector>
int main() {
std::vector<int> my_numbers;
std::cout << "В коробке: " << my_numbers.size() << " элементов." << std::endl;
return 0;
}
При запуске вы получите:
В коробке: 0 элементов.
Почему ноль? Потому что мы только что создали коробку и ничего в неё не положили!
Заполним нашу коробку:
Векторы в C++ динамичны. Вы можете добавлять и удалять элементы. При внесении этих изменений функция size
помогает отслеживать количество элементов.
Вот короткий пример:
#include <iostream>
#include <vector>
int main() {
std::vector<int> my_numbers;
for (int i = 0; i < 10; i++) {
my_numbers.push_back(i); // Добавляем элементы в коробку.
}
std::cout << "Теперь в коробке: " << my_numbers.size() << " элементов." << std::endl;
return 0;
}
Результат?
Теперь в коробке: 10 элементов.
Просто, верно?
Когда это полезно?
Представьте, что вы работаете над игрой и у вас есть список (vector) игроков. Иногда игроки присоеди няются, иногда уходят. Используя функцию size
, вы всегда будете знать, сколько у вас сейчас игроков. Это может быть полезно для разделения игроков на команды, проверки наличия достаточного количества игроков для начала игры и многого другого.
Что следует помнить:
-
Размер и емкость:
size
показывает, сколько элементов в векторе. Но у векторов есть также такое понятие какcapacity
, которое показывает, сколько он может вместить, прежде чем потребуется увеличение. Они не всегда совпадают! -
Быстро и надежно: Получение размера вектора выполняется очень быстро, независимо от количества элементо в в нем. И это всегда безопасно - это не изменит вектор или элементы внутри.
-
Исключений нет! Лучшая часть заключается в том, что эта функция не выдает ошибок или исключений. Это как задать вопрос и быть уверенным, что вы всегда получите ответ.
Некоторые интересные связанные функции:
- vector::capacity: Как уже упоминалось, это показывает, сколько ваш вектор может вместить, прежде чем потребуется расширение.
- vector::resize: Если вы хотите изменить размер вашего вектора (увеличить или уменьшить его), эта функция может вам помочь.
- vector::max_size: Хотите узнать максимальное количество элементов, которое может содержать ваш вектор? Используйте функцию
max_size
!
В заключение, понимание особенностей контейнера std::vector
и его функций, таких как size
, поможет вам в написании C++ программ. Независимо от того, только ли вы начали изучение или оттачиваете свои навыки, динамичный и универсальный характер векторов обязательно станет незаменимым инструментом в вашем программистском арсенале.
Упражнения
-
Понимание функции
size
:- Создайте
std::vector
типаstring
для хранения имен. - Добавьте в этот вектор пять имен.
- Выведите на экран текущий размер вектора с помощью функции
size
. - Удалите из вектора два имени.
- Снова выведите на экран текущий размер вектора.
- Создайте
-
Сравнение
size
иcapacity
:- Используя тот же
std::vector
имен из предыдущего задания, выведите на экран емкость вектора. - Добавьте еще 10 имен в вектор.
- Выведите размер и емкость вектора после этих добавлений.
- Обсудите разницу между размером и емкостью на основе полученных результатов.
- Используя тот же
-
Изучение других функций вектора:
- Используйте функцию
resize
, чтобы увеличить размер вашего вектора до 20 и инициализировать новые элементы именем “Вася Пупкин”. - Выведите все элементы вектора.
- Используйте функцию
max_size
, чтобы вывести максимальное количество элементов, которое вектор может хранить. - Подумайте о том, как функции
resize
иmax_size
могут быть полезны в разных ситуациях.
- Используйте функцию
Если хотите всегда быть в курсе последних новостей в мире программирования и IT, подписываетесь на мой Telegram-канал, где я делюсь свежими статьями, новостями и полезными советами. Буду рад видеть вас среди подписчиков!
Обсуждение