![The C++ Standard Library](/cpp_standard_library/images/cpp-mini-lib-logo.jpg)
- The C Standard Library
- The C Standard Library
- The C++ Standard Library
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Unordered_set::find() Function
The C++ std::unordered_set::find() function is used to find or search an element with key equivalent to key k in the container and returns an iterator if it is found, otherwise it returns an iterator to unordered_set::end().
The unordered_set is an associative container that contains a set of unique objects of type key. Every operation like insertion, search, and removal in an unordered_set has constant-time complexity.
Syntax
Following is the syntax for std::unordered_set::find() function.
iterator find ( const key_type& k ); const_iterator find ( const key_type& k ) const;
Parameters
- k − It indicates the key to be searched for.
Return Value
It returns an iterator to the element if the specified value is found; otherwise, it returns unordered_set::end if it is not found in the container.
Example 1
Let's look at the following example, where we are going to demonstrate the usage of unordered_set::find() function.
#include <iostream> #include <string> #include <unordered_set> using namespace std; int main () { unordered_set<string> myset = { "sai","ram","krishna" }; //searching a key "ram" unordered_set<string>::const_iterator got = myset.find ("ram"); if ( got == myset.end() ) cout << "not found in myset"; else cout << *got << " is in myset"; cout << endl; return 0; }
Output
If we run the above code it will generate the following output −
ram is in myset
Example 2
Consider the following example, where we are going to check whether the specified key is available or not.
#include <iostream> #include <string> #include <unordered_set> using namespace std; int main () { unordered_set<int> myset = { 10, 100, 1000, 10000 }; if ( myset.find(100) != myset.end() ) cout<< "100 is available in unordered set! "<<endl; if ( myset.find(1000) != myset.end() ) cout<< "1000 is available in unordered set! "<<endl; else cout<< "specified key is not available in unordered set! "<<endl; return 0; }
Output
Following is the output of the above code −
100 is available in unordered set! 1000 is available in unordered set!
Example 3
In the following example, we are going to erase the element that is found and display the left over elements.
#include <iostream> #include <unordered_set> using namespace std; int main (){ unordered_set<int> myUset{50, 500, 10, 100, 200}; unordered_set<int>::iterator it; it = myUset.find(50); myUset.erase(it); myUset.erase(myUset.find(10)); cout<<"myUset contains: "; for(it = myUset.begin(); it != myUset.end(); ++it) cout<<*it<<" "; return 0; }
Output
Output of the above code is as follows −
myUset contains: 200 100 500