The Python enumerate function is a built-in function that allows you to iterate over a sequence while keeping track of the index of the current item. It takes an iterable object as an argument and returns an iterator that generates tuples containing the index and the corresponding item from the iterable. The first element of the tuple is the index, starting from 0, and the second element is the item from the iterable. This function is useful when you need to access both the index and the value of each item in a sequence, such as a list or a string.. Keep reading below to learn how to python enumerate in C++.

Looking to get a head start on your next software interview? Pickup a copy of the best book to prepare: Cracking The Coding Interview!

Buy Now On Amazon

Python ‘enumerate’ in C++ With Example Code

Python’s `enumerate` function is a useful tool for iterating over a sequence while keeping track of the index of the current item. This can be particularly helpful when working with lists, tuples, and other iterable objects. But what about when you’re working in C++? Is there an equivalent to `enumerate` in C++?

The short answer is no, there is no built-in `enumerate` function in C++. However, there are a few different ways you can achieve similar functionality.

One option is to use a traditional `for` loop and manually keep track of the index. For example:

std::vector my_vector = {1, 2, 3, 4, 5};

for (int i = 0; i < my_vector.size(); i++) { int current_item = my_vector[i]; // do something with current_item and i } ``` In this example, we're using a `for` loop to iterate over the vector `my_vector`. We're manually keeping track of the index using the variable `i`, and we're accessing the current item using the square bracket notation (`my_vector[i]`). Another option is to use the `std::transform` function along with a lambda function to create a new sequence that includes both the original item and its index. For example: ```cpp std::vector my_vector = {1, 2, 3, 4, 5};
std::vector> indexed_vector;

std::transform(my_vector.begin(), my_vector.end(), std::back_inserter(indexed_vector),
[](int item, int index) {
return std::make_pair(item, index);

for (auto pair : indexed_vector) {
int current_item = pair.first;
int current_index = pair.second;
// do something with current_item and current_index

In this example, we’re using `std::transform` to create a new vector called `indexed_vector`. The lambda function we pass to `std::transform` takes two arguments: the current item and its index. The lambda function returns a `std::pair` object that includes both the item and its index. We then iterate over `indexed_vector` using a range-based `for` loop and access the current item and index using the `first` and `second` members of the `std::pair` object.

While there is no direct equivalent to Python’s `enumerate` function in C++, there are several ways to achieve similar functionality using traditional `for` loops or the `std::transform` function.

Equivalent of Python enumerate in C++

In conclusion, the equivalent of Python’s enumerate function in C++ is the std::enumerate function. This function is part of the C++20 standard library and allows for easy iteration over a range of elements while also keeping track of the index. The std::enumerate function is a powerful tool for C++ developers who want to simplify their code and make it more readable. By using this function, developers can avoid the need for manual index tracking and focus on the logic of their code. Overall, the std::enumerate function is a valuable addition to the C++ language and is sure to be a useful tool for developers for years to come.

Elevate your software skills

Contact Us