×

Array of sets in C++

Instead of defining distinct variables for each item, arrays are used to hold numerous values in a single variable. A collection of data objects stored in a continuous way is referred to as an array. It is a collection of variables of the similar type. Because the variables are kept in continuous places, it becomes easy to retrieve them.

An array can be declared by specifying the variable type, then the array and then the square brackets that would store the number of elements in the array.

Syntax:

var_type array[no_of_elements]

Example :

String colors[3] = {“orange”, “pink”, “yellow”}

The above example shows an array of colours, having 3 colours namely orange, pink and yellow.

Sets in C++ :

A set is an associating container with distinct items. The value inserted in a set, unlike an array, cannot be changed once it is added. If we wish to change a value in the set, we may first delete it and then replace it with the new value.

Syntax :

set<data_type> variable_name 

Example :

set<float> n → A set of float values
set<int> i → A set of integer values

Array of Sets :

A two-dimensional array with a predetermined number of rows is what we mean by an array of sets. The lengths of each row might differ.

Each array index contains a set in an array of sets. Iterators allow you to access the set.

Syntax :

set<datatype> variables_name[size_of_the_arr] 

Example :

set<char> c[5] ----> An array of set of char type with size 5.

Inserting elements into an array of sets :

The insert() method is used to introduce elements into each set. The insertion method in an array of sets is demonstrated in the following example :

Example :

#include <bits/stdc++.h>
using namespace std;
#define ROW 5
#define COL 4
	
// Main Code
int main()
{
	// Declared the array of sets
	set<int> st[ROW];


	// Elements to be inserted in the set
	int nmbr = 20;


	// Inserting the elements into the sets
	for (int i = 0; i < ROW; i++) {
		// Inserting the column elements
		for (int j = 0; j < COL; j++) {
			st[i].insert(nmbr);
			nmbr += 5;
		}
	}


	// Displaying the array of sets
	for (int i = 0; i < ROW; i++) {
		cout << "Elements at the index " << i << " : ";


		// Printing the array of sets
		for (auto y : st[i])
			cout << y << " ";


		cout << endl;
	}


	return 0;
}

Output :

Elements at the index 0 : 20 25 30 35 
Elements at the index 1 : 40 45 50 55 
Elements at the index 2 : 60 65 70 75 
Elements at the index 3 : 80 85 90 95 
Elements at the index 4 : 100 105 110 115

Explanation :

In the above example, we demonstrated the approach to insert the elements to the array of sets. We created an array of sets with five rows and four columns. We gave an initial number to be inserted at the first position and then used the for loop to insert elements at the intervals of five. Finally, we printed all the elements that were present in the array of sets.

Deletion of elements in array of set :

When we say "delete an element," we mean that the element is removed from the set. The erase() function is used to delete a set element.

Example :

#include <bits/stdc++.h>
using namespace std;


// Defining the length of the array and the count of elements in 
// every set
#define ROW 5
#define COL 4


// Main Code
int main()
{
	// Declared the array of sets st
	set<int> st[ROW];
	int nmbr = 20;


	// Inserting the elements into the set
	// at every index of array
	for (int i = 0; i < ROW; i++) {


		// inserting the column elements of the array of sets
		for (int j = 0; j < COL; j++) {
			st[i].insert(nmbr);
			nmbr += 5;
		}
	}


	cout << "Elements Before removal are :"
		<< endl;


	// Displaying the array of sets
	for (int i = 0; i < ROW; i++) {
		cout << "Elements at the index "
			<< i << " : ";
		for (auto y : st[i])
			cout << y << " ";
		cout << endl;
	}


	// Erasing the element 60 from the 3rd set
	st[2].erase(60);


	// Erasing the element 45 from the 2nd set
	st[1].erase(45);


	// Displaying the new array of sets after 
// the numbers getting removed
	cout << endl
		<< "Elements after removal are:"
		<< endl;


	for (int i = 0; i < ROW; i++) {
		cout << "Elements at the index "
			<< i << " : ";


		// Printing the current array of sets
		for (auto y : st[i])
			cout << y << " ";


		cout << endl;
	}


	return 0;
}

Output :

Elements Before removal are :
Elements at the index 0 : 20 25 30 35 
Elements at the index 1 : 40 45 50 55 
Elements at the index 2 : 60 65 70 75 
Elements at the index 3 : 80 85 90 95 
Elements at the index 4 : 100 105 110 115 


Elements after removal are:
Elements at the index 0 : 20 25 30 35 
Elements at the index 1 : 40 50 55 
Elements at the index 2 : 65 70 75 
Elements at the index 3 : 80 85 90 95 
Elements at the index 4 : 100 105 110 115

Explanation :

In the above example, we demonstrated the approach to delete the elements of the array of sets. We created an array of sets with five rows and four columns. We gave an initial number to be inserted at the first position and then used the for loop to insert elements at the intervals of five. Then we used the erase() method to erase or delete the element 60 from the third set and the element 45 from the second set. Finally, we printed the new and updated array of sets without the erased elements as well as the previous array of sets with the deleted elements too as the required output.

The traversal operation in the array of sets :

We cycle through each set in an array of sets and output all of the items in that set. The set elements are traversed using iterators. The following is a programme to demonstrate traversal in an array of sets :

Example :

#include <bits/stdc++.h>
using namespace std;
// Defined the number of rows of array of sets
#define ROW 3


// Main Code
int main()
{
	// Declared the array of sets st
	set<int> st[ROW];


	// Inserting the elements into the sets
	// Inserting 20, 25, 45 and 50 into the 1st set
	st[0].insert(20);
	st[0].insert(25);
	st[0].insert(45);
	st[0].insert(50);


	// Inserting 30, 40 and 55 into the 2nd set
	st[1].insert(30);
	st[1].insert(40);
	st[1].insert(55);
	
	// Inserting 65, 75, 80 and 95 into the 3rd set
	st[2].insert(65);
	st[2].insert(75);
	st[2].insert(80);
	st[2].insert(95);


	// Traversing of sets st in order to print the
	// elements stored in it
	for (int i = 0; i < ROW; i++) {
		cout << "Elements at the index "
			<< i << ": ";


		// Traversed and printed the 
		// elements at each column,
		// the begin() method is the starting
		// iterator and the end() method is the
		// ending iterator.
		for (auto itr = st[i].begin();
			itr != st[i].end();
			itr++) {


			// (*itr) is used to get the
			// value that the iterator is pointing to.
			cout << *itr << ' ';
		}


		cout << endl;
	}


	return 0;
}

Output :

Elements at the index 0: 20 25 45 50 
Elements at the index 1: 30 40 55 
Elements at the index 2: 65 75 80 95

Explanation :

In the above example, we demonstrated how one can perform the traversal operation on an array of sets. We constructed a three-row array of sets. The set consists of four components in row one, three components in row two and four components in the row three. We used the insert() method to insert the elements into the set. Then we traversed and printed all the elements into the array of sets with the help of begin() and end() methods. We used an outer loop for the rows to traverse an array of sets. We utilised the iterators to output each set in the inner loop. Hence, got the elements in the form of array of sets in the output.

Conclusion :

In this article, we got to know what are array of sets, how we can insert elements in the array of sets, how we can delete the elements of an array of sets and also how to traverse through the elements of an array of sets.


Related Topics

Palindrome Using While Loop in C++

A palindrome is a word, number, phrase, or other sequence of letters that reads the same backward as forward, such as 101 or MOM. Like other programming languages, C++ also allows...

6 minutes read.

Hello World Program in C++

The steps for “Hello World” C++ program are as follows: Write a C++ code given below in an editor. Save the file with .cpp Compile the code using C++ compiler or using online...

3 minutes read.

Is it fine to write void main() or main() in C/C++?

In C programming language: The default function return type in the C programming language is "int," which implies that main() will always return an integer value. In C, the void main()...

3 minutes read.

Backtracking Time Complexity in C++

Introduction to Backtracking Backtracking is an important part of programming languages, and with the help of backtracking, we can do many operations in an advanced data structure. For doing major operations,...

4 minutes read.

How to Reverse a String in C++ using For Loop

For Loop: We may loop through a certain section of C++ code repeatedly using the for loop. A for loop is carried out if the test expression yields a true result. The...

4 minutes read.

Passing a Vector to a function in C++

A pointer is sent to the function when we feed it an array. However, there are two ways to pass a vector: Pass by Value Pass by Reference A copy of a vector...

3 minutes read.

Factorial of a Number in C++ using while Loop

What is a factorial? The factorial of a number is the product of all the positive numbers less than or equal to n, indicated by n! According to the standard for an...

6 minutes read.

External merge sort in C++

External merge sort in C++ External sorting is a concept for a group of sorting algorithms capable of handling large data volumes. External sorting is needed if the information getting sorted...

9 minutes read.

Object in C++

In this article, we will learn about Object in C++. In short, an object is a stateful entity with behaviour. Data is referred to as state, and functionality is referred to...

3 minutes read.

Constructor Overloading in C++

A Constructor is a class member function that is used to initialize the class's objects. Constructors have no return type and are called automatically when an object is formed. Constructor Characteristics Constructors...

3 minutes read.

Quick Sort in C++

Quick sort is an efficient, in-place, comparison-based sorting algorithm that uses a divide-and-conquer strategy to sort an array or list of elements. First a pivot element is selected from the...

4 minutes read.

Learn C++ Tutorial

C++ Introduction C++ is an object-oriented programming language. It was developed by Bjarne Stroustrup at AT&T Bell Laboratories. It is superset (extension) of C programming language. Depending upon features supported by programming...

10 minutes read.

Lexicographically Next Permutation in C++

In this tutorial, we'll look at how to use C++ to generate the lexicographically next permutation of a string. The lexicographically next permutation is the larger permutation. "ACB," for example,...

3 minutes read.

How to improve programming skills in C++

Before getting started, one should know why to improve their programming skills. To become a good software developer or programmer, one must be skilled in at least one programming language. Many...

4 minutes read.

C++ Program to Implement Merge Sort

C++ Program to Implement Merge Sort The technique of merge sort is based on the strategy of divide and conquer. We divide the set of while data into smaller bits, arranged...

3 minutes read.

C++ Deque

Definition: Deque or the Doubly ended queue is a data structure or operation performed under queue where insertion and deletion are allowed at both ends. A deque is an ordered collection of...

5 minutes read.

Destructor

Let’s discover the C++ destructor, virtual and pure virtual destructors, and when destructors are invoked and their rules in this lesson. Destructors : A member function that destroys an object is known as...

5 minutes read.

C++ this pointer

'this' is a pointer that points to the object for which this function was called. The 'this' pointer holds the memory address of the current object. The 'this' pointer is implicitly passed to...

2 minutes read.

Principles of Object-Oriented Programming in C++

What is Object-Oriented Programming? Object-oriented programming is about creating obejcts that represent the real-world entity . In object-oriented programming, objects are created for the class. One of the main objectives of...

5 minutes read.

Dynamic Constructor in C++

Dynamic constructors create dynamic memory by using a dynamic memory allocator new within the constructor. This allows us to initialize objects dynamically. The term dynamic constructor is used when memory...

2 minutes read.