[英]What does for(i=0;n;i++) mean? How does the 'condition' part of the FOR loop works here?
[英]C++ How can I use “loop(n)” to represent “for(int i=0;i<n;i++)”?
定義絕對不是一個好的解決方案。
#define loop(n) for(int i=0;i<n;i++)
int main()
{
int i = 0;
loop(10000) { i++; };
cout << i << endl;//i==0 here,because of naming duplication.
getchar();
return 0;
}
除了使用非常復雜的名稱代替i之外,還有其他解決方案嗎?
如果我對您的理解正確,那么使用宏執行此操作的(邪惡)方法將是:
#define loop(n) for (int i=0; i < n; ++i)
int main()
{
loop(10000)
{
std::cout << i << std::endl;
}
return 0;
}
使用lambda函數可以減少邪惡:
template<typename T>
void loop(int n, T func)
{
for (int i=0; i < n; ++i)
func(i);
}
int main()
{
loop(10000, [] (int i)
{
std::cout << i << std::endl;
});
return 0;
}
但是不要在真實的代碼中這樣做,只需編寫簡單for
聲明即可,每個人都會理解您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.