你如何告诉编译器根据迭代次数或其他属性展开循环?或者,如何在 Visual Studio 2005 中打开循环展开优化?
编辑:例如
//Code Snippet 1
vector<int> b;
for(int i=0;i<3;++i) b.push_back(i);
相对于
//Code Snippet 2
vector<int> b;
b.push_back(0);
b.push_back(1);
b.push_back(2);
push_back() 就是一个例子,我可以用任何可能需要很长时间的东西来替换它。
但是我在某处读到我可以使用代码 1,如果循环满足某些条件,编译器可以将其展开为代码 2。所以我的问题是:你是怎么做到的?已经有一个关于 SO 的讨论,关于哪个更有效,但无论如何,对此的任何评论都是值得赞赏的。