Set Find Function

C++ set find

C++ set find function is used to find an element with the given value val. If it finds the element then it returns an iterator pointing to the element otherwise, it returns an iterator pointing to the end of the set i.e. set::end.

Syntax

Example

iterator find (const value_type& val) const;                  // until C++ 11

   const_iterator find (const value_type& val) const;              //since C++ 11
         iterator       find (const value_type& val);                    //since C++ 11

Parameter

val : specifies the value to be searched in the set container.

Return value

If it finds the element then it returns an iterator pointing to the element otherwise, it returns an iterator pointing to the end of the set i.e. set::end.

Complexity

Logarithmic in size.

Iterator validity

No changes.

Data Races

The container is accessed (neither the const nor the non-const versions modify the container.

No mapped values are accessed: concurrently accessing and modifying the elements is safe.

Exception Safety

If an exception is thrown, there are no changes in the container.

Example 1

Let's see the simple example to find the element with the given key value:

Example

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<int> m = {100,200,300,400};

   auto it = m.find(300);

   cout << "Iterator points to " << *it << endl;

   return 0;
}

Output:

Output

Iterator points to 300

Example 2

Let's see a simple example to find the element:

Example

#include <iostream>
#include <set>

using namespace std;

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

            
    auto it = m.find('e');
   
    if ( it == m.end() ) {
    // not found
     cout<<"Element not found";
    } 
    else {
        // found
        cout << "Iterator points to " << *it<< endl;
    }
    
   return 0;
}

Output:

Output

Element not found

In the above example, find function finds the key value e in the set m, if it is not found in the set then it will return a not found message otherwise, it will display the set.

Example 3

Let's see a simple example:

Example

#include <iostream>
#include <set>
 
using namespace std;

int main()
{
    char n;
    set<char> example = {'a','b','c','d','e'};
    
    cout<<"Enter the element which you want to search: ";
    cin>>n;
 
    auto search = example.find(n);
    if (search != example.end()) {
        cout << n<<" found and the value is " << *search << '\n';
    } else {
        cout << n<<" not found\n";
    }
}

Output:

Output

Enter the element which you want to search: b
b found and the value is b

In the above example, find function is used to find the element according to user's given value.

Example 4

Let's see a simple example:

Example

#include <iostream>
#include <set>

int main () {
   std::set<int> myset;
   std::set<int>::iterator it;

   for (int i = 1; i <= 10; i++) myset.insert(i*10);    
   it = myset.find(40);
   myset.erase (it);
   myset.erase (myset.find(60));

   std::cout << "myset contains:";
   for (it = myset.begin(); it!=myset.end(); ++it)
      std::cout << ' ' << *it;
   std::cout << '\n';

   return 0;
}

Output:

Output

myset contains: 10 20 30 50 70 80 90 100

Input Required

This code uses input(). Please provide values below: