Разница между set, multiset, unordered_set, unordered_multiset в С++
В стандартной библиотеке шаблонов C++ для хранения элементов используются set, multiset, unordered_set, unordered_multiset. Хотя они похожи, но отличаются друг от друга некоторыми функциями. Различия обсуждаются ниже:
1. Набор : это ассоциативные контейнеры, в которых хранятся уникальные элементы в определенном порядке. Ниже приведены свойства наборов:
- Сохраняет значения в отсортированном порядке.
- Сохраняет только уникальные значения.
- Элементы можно только вставлять или удалять, но нельзя изменять.
- Мы можем стереть более 1 элемента, задав начальную и конечную позицию итератора.
- Обход с помощью итераторов.
- Наборы реализованы как двоичное дерево поиска.
Синтаксис:
set<datatype> setname;
В следующем примере демонстрируется применение set.
2. Мультимножество : это ассоциативные контейнеры, в которых хранится несколько элементов, имеющих эквивалентные значения в определенном порядке. Ниже приведены свойства мультимножеств:
- Сохраняет элементы в отсортированном порядке.
- Это позволяет хранить несколько элементов.
- Мы можем стереть более одного элемента, указав начальный и конечный итератор.
Примечание. Все остальные свойства аналогичны набору.
Синтаксис:
multiset<datatype> multisetName;
В следующем примере демонстрируется применение Multiset.
3. неупорядоченный набор: Это ассоциативные контейнеры, в которых хранятся уникальные элементы в произвольном порядке. Ниже приведены свойства Unordered_sets:
- Элементы могут храниться в любом порядке. (без сортировки)
- Сохраняет только уникальные значения.
- Хеш-таблица используется для хранения элементов.
- Мы можем стереть только тот элемент, для которого задана позиция итератора.
Примечание. Все остальные свойства аналогичны набору.
Синтаксис:
unordered_set<datatype> setname;
В следующем примере демонстрируется применение неупорядоченного множества.
4. Unordered_multiset : это ассоциативный контейнер, содержащий набор неуникальных элементов в несортированном порядке. Ниже приведены свойства Unordered_multiset:
- Элементы могут храниться в любом порядке.
- Повторяющиеся элементы могут быть сохранены.
- Хеш-таблица используется для хранения элементов.
- Мы можем стереть только тот элемент, для которого задана позиция итератора.
Примечание. Все остальные свойства аналогичны набору.
Синтаксис:
unordered_multiset<datatype> multisetName;
В следующем примере демонстрируется применение неупорядоченного мультимножества.
Разница между set, multiset, unordered_set, unordered_multiset:
- Проще говоря, набор — это контейнер, в котором хранятся отсортированные и уникальные элементы. Добавление unordered означает, что элементы не отсортированы .
- Добавление мультимножества означает, что разрешено хранение повторяющихся элементов .
Эта статья предоставлена SHAURYA UPPAL . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.