美文网首页
c++11 foreach循环

c++11 foreach循环

作者: zhangzq | 来源:发表于2020-06-30 01:57 被阅读0次

    c++11支持foreach循环,使用前需要启用c++11支持,

    启动C++ 11支持

    在编译命令行添加参数

    -std=c++11
    或者
    -std=c++0x
    

    在Eclipse中的配置

    使用IDE的,在ide的相关设置中启用c++11支持
    如EclispeCDT中,右击项目,选择属性(Properties),
    定位到如下设置
    C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Dialect
    如下图所示,在Language standard中选择ISO C++11 (-std=c++0x),然后点击Apply and Close,此时可能会提示需要重新编译整个项目,选择是,等待编译完毕之后,便可正常使用C++11的新特性了。

    image.png

    ForEach循环

    语法模板如下,

    for(元素类型 元素变量 : 可迭代的元素) {
        循环体
    }
    
    遍历数组
        int arr[] = { 1, 2, 3, 4, 5, 2, 3, 4 };
        for (int it : arr) {
            cout<<it<<",";
        }
    

    输出结果为:

    1,2,3,4,5,2,3,4,

    经测试,此种遍历数组的方式仅能够遍历静态定义的数组,且不允许通过一级指针来代替数组。
    即,将数组传递给一个函数,在该函数中使用foreach函数会报错
    使用new关键字动态创建的数组使用foreach会报错,等等。

    除了遍历数组之外,foreach还可以遍历任何可迭代的容器或元素,如

    遍历字符串
    string s = "HelloWorld";
    for (char it : s) {
        cout << it << " ";
    }
    

    输出结果:

    H e l l o W o r l d

    遍历容器(以vector为例)
    vector<int> v(3);
    v[0]=1;
    v[1]=2;
    v[2]=3;
    for(int it:v){
        cout<<it<<",";
    }
    

    输出结果:

    1,2,3,

    PS:

    实测对于容器对象,字符串对象等元素,可以自由地使用foreach循环而无数组的那些限制。

    相关文章

      网友评论

          本文标题:c++11 foreach循环

          本文链接:https://www.haomeiwen.com/subject/mcdafktx.html