
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ Program to Implement Set in STL
Set is an associative container that stores unique elements in a sorted order. In this article, we will learn how to use the set container from the Standard Template Library (STL) in C++.
What is Set?
A Set is a container that stores data in a sorted order without any duplicates. Meaning, the duplicate values are automatically eliminated, and the elements are kept in ascending order by default. The STL library of C++ provides a pre-defined set container that uses a balanced binary search tree for storage.
For example, in the code we have shown how data are inserted and stored in set:
// Declare a set set<int> s; // Add Data s.insert(10); s.insert(20); s.insert(10); // This will not be added as 10 is already present
Using set Container in STL
The set container is defined in the <set> header of STL. It provides fast access and automatically sorts the elements. Below are some points about this container:
- Header: <set>
-
Syntax:
set<datatype> set_name;
- Common functions:
- insert() - Function used to insert an element into the set.
- erase() - Function used to remove an element from the set.
- find() - Function used to search for an element in the set.
- count() - Function used to count the number of occurrences of an element (will be 0 or 1 in set).
- empty() - Function used to check if the set is empty.
- size() - Function used to return the number of elements in the set.
Steps to Implement Set in C++ STL
Following are steps/algorithm to use set using C++ STL:
- Include the <set> header file.
- Declare a set with desired data type.
- Use insert() to add elements.
- Use erase() to remove elements.
- Use find() to check if an element exists.
- Use empty() and size() to check status.
C++ Program to Implement Set using STL
The below code is the implementation of the above algorithm in C++ language.
#include <iostream> #include <set> using namespace std; int main() { set<int> s; // Insert elements s.insert(30); s.insert(10); s.insert(20); s.insert(10); // Duplicate, will be ignored cout << "Set Elements: "; for (int x : s) { cout << x << " "; } cout << endl; // Check if element exists if (s.find(20) != s.end()) { cout << "20 is present in set" << endl; } // Remove an element s.erase(10); cout << "After erasing 10, Set Elements: "; for (int x : s) { cout << x << " "; } cout << endl; cout << "Set Size: " << s.size() << endl; if (s.empty()) { cout << "Set is empty" << endl; } else { cout << "Set is not empty" << endl; } return 0; }
The output of above code will be
Set Elements: 10 20 30 20 is present in set After erasing 10, Set Elements: 20 30 Set Size: 2 Set is not empty
Time and Space Complexity
- insert(), erase(), find(): O(log n) for each operation.
Space Complexity: O(n), where n is the number of elements in the set.