Skip to content
C++

Iterator

Iterator types and usage.

By EZ4Code Team
iteratoriterator

Code

#include <iostream>
#include <vector>
#include <list>
#include <map>
#include <iterator>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};

    // Forward iterator
    for (auto it = v.begin(); it != v.end(); ++it)
        std::cout << *it << " ";
    std::cout << "\n";

    // Reverse iterator
    for (auto it = v.rbegin(); it != v.rend(); ++it)
        std::cout << *it << " ";
    std::cout << "\n";

    // Insert iterator
    std::vector<int> dest;
    std::copy(v.begin(), v.end(), std::back_inserter(dest));

    // Stream iterator
    std::vector<int> nums;
    std::copy(std::istream_iterator<int>(std::cin),
              std::istream_iterator<int>(),
              std::back_inserter(nums));

    // Move iterator
    std::vector<std::string> src = {"a", "b", "c"};
    std::vector<std::string> dst(
        std::make_move_iterator(src.begin()),
        std::make_move_iterator(src.end()));

    // Iterator categories
    // Random access: vector, deque, array
    // Bidirectional: list, set, map
    // Forward: forward_list, unordered_set

    return 0;
}

Explanation

Iterators unify container traversal, including forward, reverse, insert, stream, and move iterators.

More C++ Snippets