1. 程式人生 > >C++使用for和foreach,g++編譯C++11程式

C++使用for和foreach,g++編譯C++11程式

Windows的for each在Linux下編譯不過去,所以找了一下C++使用foreach的通用方式。

//C++11 lambda 表示式解析
//http://www.cnblogs.com/haippy/archive/2013/05/31/3111560.html
//C++ 中的 Lambda 表示式
//https://msdn.microsoft.com/zh-cn/library/dd293608.aspx
#include <iostream>
#include <algorithm>
int main()
{
    int intArr[] = { 1, 2, 3, 4, 5 };
    //
    std::cout << "std::for_each ......" << std::endl;
    std::for_each(std::begin(intArr), std::end(intArr),
        [](int i)->void{ std::cout << i << std::endl; });
    //
    std::cout << "for(const auto& i : intArr) ......" << std::endl;
    for(const auto& i : intArr)
        std::cout << i << std::endl;
    //
    return 0;
}

在Linux上編譯時,才發現我還不會用Linux的編譯器呢,找了一下,發現這樣可以編譯成功。

g++ -Wall -std=c++11 test.cpp -o test.out

完。