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-канал, где я делюсь свежими статьями, новостями и полезными советами. Буду рад видеть вас среди подписчиков!
Обсуждение