TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C++ set swap() Function (Non-member)

C++ set swap() Function (Non-member) with tutorial for beginners and professionals with examples on constructor, destructor, operator=(), begin(), cbegin(), cend(), end(), crbegin(), empty(), max_size(), clear(), emplace_hint(), key_comp(), swap() etc.

<< Back to CPP

C++ std swap()

C++ std swap(set) is a non-member function of set in C++. This is used to swap (or exchange) the contents of two sets (i.e. x and y) but both the sets must be of same type although sizes may differ.

Syntax

template <class T, class Compare, class Alloc>
  void swap (set<T,Compare,Alloc>& x, set<T,Compare,Alloc>& y);

Parameter

x: First set object.

y: Second set object of the same type.

Return value

None

Complexity

Constant.

Iterator validity

All iterators, references and pointers referring to elements in both containers remain valid.

Note that the end iterators do not refer to elements and may be invalidated.

Data Races

Both containers x and y are modified.

No contained elements are accessed by the call.

Exception Safety

This function does not throw an exception.

Example 1

Let's see the simple example to swap the element of one set to another:

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<char> m1 = {'a','b','c','d'};

   set<char> m2;

   swap(m1, m2);

   cout << "Set contains following elements" << endl;

   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << *it<< endl;

   return 0;
}

Output:

Set contains following elements
a
b
c
d

In the above example, set m1 has five elements and m2 is empty. When you swap m1 to m2 then all the elements of m1 is swapped to m2.

Example 2

Let's see a simple example to exchange the contents of two sets:

#include <iostream>
#include <set>

using namespace std;

int main ()
{
  set<int> set1,set2;

  set1= {100,200};

  set2 = {110, 220, 330};

  swap(set1,set2);

  cout << "set1 contains:\n";
  for (set<int>::iterator it=set1.begin(); it!=set1.end(); ++it)
    cout << *it<< '\n';

  cout << "set2 contains:\n";
  for (set<int>::iterator it=set2.begin(); it!=set2.end(); ++it)
    cout << *it<< '\n';

  return 0;
}

Output:

set1 contains:
110
220
330
set2 contains:
100
200

In the above example, contents of two sets i.e. set1 and set2 are exchanged to each other.

Example 3

Let's see a simple example to swap the contents of two sets:

#include <iostream>
#include <set>

using namespace std;

 int main ()
{
  int myints[]={12,75,10,32,20,25};
  set<int> first (myints,myints+3);     // 10,12,75
  set<int> second (myints+3,myints+6);  // 20,25,32

  swap(first,second);

  cout << "first contains:";
  for (set<int>::iterator it=first.begin(); it!=first.end(); ++it)
    cout << ' ' << *it;
  cout << '\n';

  cout << "second contains:";
  for (set<int>::iterator it=second.begin(); it!=second.end(); ++it)
    cout << ' ' << *it;
  cout << '\n';

  return 0;
}

Output:

first contains: 20 25 32
second contains: 10 12 75

Example 4

Let's see a simple example:

#include <iostream>
#include <string>
#include <set>

using namespace std;

void show(const char *msg, set<int> mp);

int main() {
  set<int> m1, m2;

  m1.insert(100);
  m1.insert(300);
  m1.insert(200);

  // Exchange the contents of m1 and m2.
  cout << "Exchange m1 and m2.\n";
  swap(m1,m2);
  show("Contents of m2: ", m2);
  show("Contents of m1: ", m1);

 // Clear m1.
  m1.clear();
  if(m1.empty()) cout << "m1 is now empty.";

  return 0;
}

// Display the contents of a set<string, int> by using an iterator.
void show(const char *msg, set<int> mp) {
  set<int>::iterator itr;

  cout << msg << endl;
  for(itr=mp.begin(); itr != mp.end(); ++itr)
    cout << "  " << *itr<< endl;
  cout << endl;
}

Output:

Exchange m1 and m2.
Contents of m2: 
  100
  200
  300

Contents of m1: 

m1 is now empty.

In the above example, contents of set m1 are swapped to set m2 and after swapping m1 set have been cleared.


Next TopicC++ Set




Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf