Разница между std :: set и std :: vector в C ++ STL

Опубликовано: 26 Декабря, 2021

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

Примеры:

 вектор <int> v;
v.push_back (1);
v.push_back (2);
v.clear ();

Ниже представлена реализация векторов на C ++:

C ++

// C++ program to demonstrate the
// working of vector in cpp
#include <bits/stdc++.h>
using namespace std;
// Driver Code
int main()
{
vector< int > v;
// Inserting elements in vector
v.push_back(11);
v.push_back(6);
v.push_back(12);
v.push_back(0);
v.push_back(0);
// Elements are stored in the
// order of insertion with the
// duplicate element
cout << "Elements in vector are: " ;
for ( auto it : v) {
cout << it << " " ;
}
return 0;
}
Выход:
Элементами вектора являются:
11 6 12 0 0

Set : Set также является одним из шаблонов стандартной библиотеки шаблонов или STL . Это контейнер уникальных элементов, значение которых не может быть изменено после добавления в набор, но может быть удалено или вставлено. Элементы наборов всегда хранятся в отсортированном виде.

Примеры:

установить <int> s;
s.insert (1);
s.insert (12);
int key = 1;
s.erase (ключ);

Ниже представлена реализация наборов на C ++:

C ++

// C++ program to demonstrate the
// working of set in c++
#include <bits/stdc++.h>
using namespace std;
// Driver Code
int main()
{
set< int > s;
// Insert elements into the set
s.insert(11);
s.insert(6);
s.insert(12);
s.insert(0);
// Duplicate elements
s.insert(0);
cout << "Elements in set: " ;
// The inserted elements get sorted
// Print the elements of the set
for ( auto it : s) {
cout << it << " " ;
}
return 0;
}
Выход:
Элементы в наборе:
0 6 11 12

Табличная разница между вектором и набором :

Вектор

Установленный

Элементы вектора не отсортированы. Элементы наборов всегда отсортированы.
Он может содержать повторяющиеся элементы. Он содержит только уникальные элементы.
Вектор неупорядочен. Комплект заказан.
Сложность вставки нового элемента составляет O (1) . Сложность по времени для вставки нового элемента составляет O (log N) .
Вектор быстрее вставляет и удаляет элементы в конце контейнера. Set быстрее вставляет и удаляет элементы в середине контейнера.


Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .