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

Что следует помнить:

  1. Размер и емкость: size показывает, сколько элементов в векторе. Но у векторов есть также такое понятие как capacity, которое показывает, сколько он может вместить, прежде чем потребуется увеличение. Они не всегда совпадают!

  2. Быстро и надежно: Получение размера вектора выполняется очень быстро, независимо от количества элементов в нем. И это всегда безопасно - это не изменит вектор или элементы внутри.

  3. Исключений нет! Лучшая часть заключается в том, что эта функция не выдает ошибок или исключений. Это как задать вопрос и быть уверенным, что вы всегда получите ответ.

Некоторые интересные связанные функции:

  • vector::capacity: Как уже упоминалось, это показывает, сколько ваш вектор может вместить, прежде чем потребуется расширение.
  • vector::resize: Если вы хотите изменить размер вашего вектора (увеличить или уменьшить его), эта функция может вам помочь.
  • vector::max_size: Хотите узнать максимальное количество элементов, которое может содержать ваш вектор? Используйте функцию max_size!

В заключение, понимание особенностей контейнера std::vector и его функций, таких как size, поможет вам в написании C++ программ. Независимо от того, только ли вы начали изучение или оттачиваете свои навыки, динамичный и универсальный характер векторов обязательно станет незаменимым инструментом в вашем программистском арсенале.

Упражнения

  1. Понимание функции size:

    • Создайте std::vector типа string для хранения имен.
    • Добавьте в этот вектор пять имен.
    • Выведите на экран текущий размер вектора с помощью функции size.
    • Удалите из вектора два имени.
    • Снова выведите на экран текущий размер вектора.
  2. Сравнение size и capacity:

    • Используя тот же std::vector имен из предыдущего задания, выведите на экран емкость вектора.
    • Добавьте еще 10 имен в вектор.
    • Выведите размер и емкость вектора после этих добавлений.
    • Обсудите разницу между размером и емкостью на основе полученных результатов.
  3. Изучение других функций вектора:

    • Используйте функцию resize, чтобы увеличить размер вашего вектора до 20 и инициализировать новые элементы именем “Вася Пупкин”.
    • Выведите все элементы вектора.
    • Используйте функцию max_size, чтобы вывести максимальное количество элементов, которое вектор может хранить.
    • Подумайте о том, как функции resize и max_size могут быть полезны в разных ситуациях.

Обсуждение