📜  C++中不同类型的基于范围的for循环迭代器(1)

📅  最后修改于: 2023-12-03 15:14:01.897000             🧑  作者: Mango

C++中不同类型的基于范围的for循环迭代器

基于范围的for循环是C++11引入的一种新的for循环方式,它可以简化代码,使代码更加易读。在基于范围的for循环中,可以使用不同类型的迭代器来迭代不同类型的容器。本文将介绍C++中常用的几种基于范围的for循环迭代器。

迭代器

迭代器是一种C++中用来遍历容器中元素的工具,它提供了遍历容器中元素的能力。迭代器有多种类型,每种类型都提供不同的操作。下面列出了一些常用的迭代器类型:

  • InputIterator
  • OutputIterator
  • ForwardIterator
  • BidirectionalIterator
  • RandomAccessIterator
基于范围的for循环迭代器

基于范围的for循环迭代器是一种语法糖,用于遍历容器中的元素。下面是一些常用的基于范围的for循环迭代器:

vector容器

对于vector容器,可以使用auto类型的迭代器来遍历容器中的元素,示例代码如下:

#include <iostream>
#include <vector>

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

    for (auto it : v)
    {
        std::cout << it << ' ';
    }

    return 0;
}
string容器

对于string容器,也可以使用auto类型的迭代器来遍历容器中的元素,示例代码如下:

#include <iostream>
#include <string>

int main()
{
    std::string s = "hello";

    for (auto it : s)
    {
        std::cout << it << ' ';
    }

    return 0;
}
数组

对于数组,可以使用auto类型的迭代器来遍历数组中的元素,示例代码如下:

#include <iostream>

int main()
{
    int a[] = { 1, 2, 3, 4, 5 };

    for (auto it : a)
    {
        std::cout << it << ' ';
    }

    return 0;
}
map容器

对于map容器,可以使用auto类型的迭代器来遍历容器中的元素,示例代码如下:

#include <iostream>
#include <map>

int main()
{
    std::map<int, std::string> m = { { 1, "one" }, { 2, "two" }, { 3, "three" } };

    for (auto it : m)
    {
        std::cout << it.first << ": " << it.second << std::endl;
    }

    return 0;
}
总结

基于范围的for循环迭代器是一种方便的遍历元素的方法,可以使代码更加简洁易读。在不同容器类型中,可以使用不同类型的迭代器来遍历容器中的元素。迭代器类型的选择要根据容器类型来确定。