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
完。