Menu
Coddy logo textTech

Создание множества и добавление элементов

Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 36 из 56.

Теперь, когда вы знаете, что такое множество, давайте узнаем, как его создать и добавить в него элементы. Чтобы добавить элементы в std::set, вы используете метод .insert().

Вот как создать пустое множество и добавить элементы:

std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);

Самая важная особенность множеств заключается в том, что они автоматически отклоняют дубликаты. Если вы попытаетесь вставить одно и то же значение дважды, множество останется неизменным:

numbers.insert(5);  // Это не добавит еще одну 5
numbers.insert(5);  // И это тоже

После всех этих вставок ваше множество будет содержать только три уникальных элемента: 2, 5 и 8 (автоматически отсортированных). Повторные попытки вставить 5 просто игнорируются, что и делает множества такими полезными для хранения коллекций уникальных данных.

challenge icon

Задание

Легко

Создайте программу, которая демонстрирует особенность уникальности элементов в std::set, добавляя несколько целых чисел в набор, включая дубликаты, а затем отображая итоговый размер, чтобы доказать, что дубликаты автоматически игнорируются.

Будут предоставлены следующие входные данные:

  • Целое число n, представляющее количество целых чисел для вставки
  • Затем n целых чисел, которые необходимо вставить в набор

Ваша программа должна:

  1. Создать пустой std::set<int>
  2. Считать количество целых чисел для вставки
  3. Использовать цикл для чтения каждого целого числа и вставки его в набор с помощью метода .insert()
  4. После всех вставок вывести итоговый размер набора, используя метод .size()
  5. Вывести сообщение, показывающее, сколько попыток вставки дубликатов было проигнорировано

Используйте следующий точный формат вывода:

Set size: [final_size]
Duplicates ignored: [number_of_duplicates]

Количество проигнорированных дубликатов должно быть рассчитано как разница между общим количеством попыток вставки и итоговым размером набора. Это демонстрирует, что наборы автоматически поддерживают уникальность, отклоняя повторяющиеся значения, что является их ключевой особенностью для хранения коллекций уникальных элементов.

Шпаргалка

Чтобы создать множество и добавить элементы, используйте .insert():

std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);

Множества автоматически отклоняют дубликаты — при многократной вставке одного и того же значения сохраняется только одна копия:

numbers.insert(5);  // Это не добавит еще одну 5
numbers.insert(5);  // Это тоже не добавит

Используйте .size(), чтобы получить количество уникальных элементов в множестве.

Попробуйте сами

#include <iostream>
#include <set>
using namespace std;

int main() {
    // Считать количество целых чисел для вставки
    int n;
    cin >> n;
    
    // Создать пустое множество
    set<int> mySet;
    
    // TODO: Напишите свой код здесь
    // Используйте цикл, чтобы считать n целых чисел и вставить их в множество
    // Вычислите, сколько дубликатов было проигнорировано
    
    // Вывести результаты
    cout << "Set size: " << mySet.size() << endl;
    cout << "Duplicates ignored: " << /* вычислить дубликаты */ << endl;
    
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком