C++ list get element: In the prior tutorials, we have discussed Different Ways to iterate over a List of objects in C++. Now, we have come up with a new tutorial on C++ concept ie., how to Search an Element in std::list in C++ Program.
std::find in C++
C++ std list example: C++ std::find function obtains the element in the given range of numbers. Also, it returns an iterator to the first element in the range [first,last) that compares equal to val. If no such element is found, the function returns last.
Template of the Function
InputIterator find (InputIterator first, InputIterator last, const T& val) first,last: Input iterators to the initial and final positions in a sequence. The range searched is [first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last. val: Value to be search in the range Return Value: An iterator to the first element in the range that compares equal to val. If no elements match, the function returns last.
Examples:
Input : 10 20 30 40 Output : Element 30 found at position : 2 (counting from zero) Input : 8 5 9 2 7 1 3 10 Output : Element 4 not found.
// CPP program to illustrate
// std::find
// CPP program to illustrate
// std::find
#include<bits/stdc++.h>
int main ()
{
std::vector<int> vec { 10, 20, 30, 40 };
// Iterator used to store the position
// of searched element
std::vector<int>::iterator it;
// Print Original Vector
std::cout << "Original vector :";
for (int i=0; i<vec.size(); i++)
std::cout << " " << vec[i];
std::cout << "\n";
// Element to be searched
int ser = 30;
// std::find function call
it = std::find (vec.begin(), vec.end(), ser);
if (it != vec.end())
{
std::cout << "Element " << ser <<" found at position : " ;
std::cout << it - vec.begin() << " (counting from zero) \n" ;
}
else
std::cout << "Element not found.\n\n";
return 0;
}
Output:
Original vector : 10 20 30 40 Element 30 found at position : 2 (counting from zero)
Find and Contains: How to Search an Element in std::list?
Std find c++: In this article we are going to see multiple ways we can search an element inside a list.
- By using std::find() to search an element in std::list
- By using generic contains() method for std::list
As there are no methods available in the std::list to find an element we are going to manually iterate over the array and check if any of the elements matches ours.
By using std::find() to search an element in std::list :
std::find c++: The standard library has an algorithm find( )function.
Syntax:
<class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& val);
C++ std list: In the find( ) function, we can pass two iterators and a value with them. The function will check all the elements given between them and compare it with the value we have provided.
If a match is found it returns the iterator or else it would return the iterator pointing to the list end.

Let’s see the below program to understand the use of find()function.
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
int main()
{
std::list<std::string> stringList = {
"I", "am",
"the", "yes",
"hey", "from"};
// Create a Iterator for the list
std::list<std::string>::iterator it;
//Check for 'hey' inside the list
it = std::find(stringList.begin(), stringList.end(), "hey");
//Check if the iterator points to the end of the list
if (it != stringList.end())
{
//If it does not point to end then the element exists
std::cout << "'hey' exists in list " << std::endl;
}
else
{
//If it points to end, then the element does not exist
std::cout << "'hey' not there" << std::endl;
}
}
Output : 'hey' exists in list
By using generic contains() method for std::list :
C++ std find: Let’s create a generic contains() method to search for a given value.
Let’s see the below program to understand it clearly.
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
/*
*Creating a generic function to find an element inside the list
*/
template <typename T>
bool contains(std::list<T> &listOfElements, const T &element)
{
// Find the iterator of element exists inside the list
auto it = std::find(listOfElements.begin(), listOfElements.end(), element);
//if iterator points to end return false
return it != listOfElements.end();
}
int main()
{
std::list<std::string> stringList =
{"I", "am", "the", "yes", "hey", "from"};
// Check for the element inside list
bool res = contains(stringList, std::string("is"));
std::cout << res << std::endl;
res = contains(stringList, std::string("yes"));
std::cout << res << std::endl;
// List of ints
std::list<int> numList =
{10, 6, 89, 32, 3, 25};
// Check if the number exists in list
res = contains(numList, 3);
std::cout << res << std::endl;
res = contains(numList, 25);
std::cout << res << std::endl;
}
Output : 0 1 1 1
Also Read: How to Access Element by Index in a Set