C++ foreach
last modified January 9, 2023
C++ foreach tutorial shows how to loop over containers in C++.
C++ 11 introduced range-based for loop. The for-range loop can be used to easily loop over elements of containers, including arrays, vectors, lists, and maps.
C++ foreach array
An array is a fixed-size sequential collection of elements of the same type.
#include <iostream>
int main() {
int vals[] {1, 2, 3, 4, 5};
for (auto val : vals) {
std::cout << val << std::endl;
}
}
The example prints all elements of the array of integers.
$ ./foreach_array 1 2 3 4 5
C++ foreach vector
A vector is a dynamic array.
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums { 1, 2, 3, 4, 5, 6, 7 };
for (auto num: nums) {
std::cout << num << std::endl;
}
}
We go over the vector of integers.
$ ./foreach_vector 1 2 3 4 5 6 7
C++ foreach list
A list is a container which supports constant time insertion and removal of elements from anywhere in the container. It allows non-contiguous memory allocations.
#include <iostream>
#include <list>
int main() {
std::list<std::string> words = { "falcon", "sky", "cloud", "book" };
for (auto word: words) {
std::cout << word << std::endl;
}
}
We print all elements of the list of strings.
$ ./foreach_list falcon sky cloud book
C++ foreach map
A map is a container which stores key/value pairs.
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> items {
{"coins", 3},
{"pens", 2},
{"keys", 1},
{"sheets", 12}
};
for (auto item: items) {
std::cout << item.first << ": " << item.second << std::endl;
}
}
We have a map of domains. Using the for-range loop we go over the key/value pairs of the map.
$ ./foreach_map coins: 3 keys: 1 pens: 2 sheets: 12
In this article, we have worked with for-range loop in C++.