*This tutorial will go through how to find an element in a C++ vector and how to count the number of occurrences of an element with the help of code examples.*

## Table of contents

## A Brief Introduction on Vectors in C++

A vector is a dynamic container for storing data. Unlike arrays, the size of a vector can grow and shrink dynamically during the execution of a program. Vectors are part of the C++ Standard Template Library. To use vectors, we need to include the vector header file in our program like so

#include <vector>

Let’s look at how to find elements in a C++ vector.

## Find Element in C++ Vector Using std::find()

The function std::find() searches for an element equal to the value passed as a parameter and returns an iterator pointing to that element in the vector. The syntax of find() is as follows:

find(first, last, value)

Where *first* and *last* are the input iterators to the initial and final positions in a sequence. The function searches for *value* in all elements between *first* and *last* including the element pointed by *first* but not the element pointed by *last*.

Let’s look at an example where we want to find an integer in an array of integers.

#include <iostream> #include <vector> int find_element(std::vector<int> arr, int k){ std::vector<int>::iterator it; it = std::find(arr.begin(), arr.end(), k); if(it != arr.end()) return (it - arr.begin()); else return -1; }

In the above code, we will define a function that takes a vector and key to search for as parameters. We declare an iterator for our vector which points to the memory address of the vector. We use this iterator to traverse the vector. Then, we call `std::find`

to return the position of key k in the vector. Using an if statement we return the position of the element if it exists in the vector otherwise we return -1 meaning it is not in the vector.

Let’s define a vector of int in the `main()`

function and call the `find_element`

to find the number 6.

int main() { std::vector<int> arr = {2, 4, 6, 8, 10}; int k = 6; std::cout << find_element(arr, k) << std::endl; }

Let’s run the code to get the result:

2

The number 6 is at position 2 in the vector.

## Return Index of the Element Using std::find_if()

We can find the index of an element in a vector using the `std::find_if()`

function. This function finds the first element in a range for which the predicate function returns true. Let’s look at an example where use `find_if()`

the first element in a vector of integers that is a multiple of 5.

#include <iostream> #include <vector> // Returns true if x is a multiple of 5 bool multipleOf5(int x) { return x % 5 == 0; }; int main(){ std::vector<int> arr = {2, 4, 6, 8, 10, 12, 20}; std::vector<int>::iterator mult5 = std::find_if(arr.begin(), arr.end(), multipleOf5); std::cout << "First item that is a multiple of 5: " << *mult5 << std::endl; return 0; }

## Count the Number of Occurrences of an Element Using std::count()

The function std::count() returns the number of occurrences of an element in a vector. The syntax of std::count is as follows:

count(first, last, value)

Where *first* and *last* are the input iterators to the initial and final positions in a sequence. The function searches for *value* in all elements between *first* and *last,* including the element pointed by *first* but not the element pointed by *last*.

Let’s look at an example:

#include <iostream> #include <vector> bool count_elements(std::vector<int> arr, int k){ return std::count(arr.begin(), arr.end(), k); }

In the above code, the function `count_elements()`

takes a vector of int and a key as its parameters.

#include <iostream> #include <vector> bool count_elements(std::vector<int> arr, int k){ return std::count(arr.begin(), arr.end(), k); } int main(){ std::vector<int> arr = {2, 4, 6, 8, 10, 12}; int k = 6; std::cout << count_elements(arr, k) << std::endl; return 0; }

1

## Return Boolean Using std::any_of()

The `std::any_of`

function works similarly to the `std::find_if()`

function. The `any_of()`

function returns a boolean value True if the predicate returns `True`

for any of the elements and `False`

otherwise.

Let’s look at an example where use `any_of()`

to check if any of the elements in a vector of integers is a multiple of 5.

#include <iostream> #include <vector> // Returns true if x is a multiple of 5 bool multipleOf5(int x) { return x % 5 == 0; }; int main(){ std::vector<int> arr = {2, 4, 6, 8, 10, 12, 20}; if (std::any_of(v.begin(), v.end(), multipleOf5)) { std::cout << "Element found"; } else { std::cout << "Element not found"; } return 0; }

Element found

## Summary

Congratulations on reading to the end of this tutorial! We have gone through several ways to check if an element exists in a vector and how to count the number of occurrences of an element in a vector.

For further reading on C++, go to the articles:

Have fun and happy researching!