哪个更适合每个,in或for_each?

Mik*_*ron 3 c++ stl visual-studio-2010 c++11

使用Visual Studio时,我至少可以通过以下三种方式编写容器遍历.哪种方式更可取?假设:

vector<CString> strings1;
Run Code Online (Sandbox Code Playgroud)

方法1(使用for_each带有lambda 的算法:

for_each(strings1.begin(), strings1.end(), [](CString s){
   _tprintf(_T("%s"), s);
}
Run Code Online (Sandbox Code Playgroud)

方法2(使用for each, in,特定于microsoft):

for each(auto s in strings1)
{
   _tprintf(_T("%s"), s);
}
Run Code Online (Sandbox Code Playgroud)

方法3(使用数组语法处理向量):

for (int i=0; i<v.size(); ++i)
{
   _tprintf(_T("%s"), v[i]);
}
Run Code Online (Sandbox Code Playgroud)

我知道方法2不可移植,但我不在乎便携.这只需要在Windows中工作.

zch*_*zch 5

在C++ 11中,您可以使用基于范围,类似于方法2,但标准.

http://www2.research.att.com/~bs/C++0xFAQ.html#for