[英]Using for loop inside declaration of variable
我可以在聲明變量時使用 for 循環嗎?
int main() {
int a = {
int b = 0;
for (int i = 0; i < 5; i++) {
b += i;
}
return b;
};
printf("%d", a);
}
您可以使用 lambda:
int main() {
int a = []{
int b = 0;
for (int i = 0; i < 5; i++) {
b += i;
}
return b;
}();
printf("%d", a);
}
請務必注意,您必須立即執行它,否則您將嘗試存儲 lambda。 因此在末尾添加了額外的()
。
如果您打算將 lambda 重用於多個實例化,您可以像這樣單獨存儲它:
int main() {
auto doCalculation = []{
int b = 0;
for (int i = 0; i < 5; i++) {
b += i;
}
return b;
};
int a = doCalculation();
printf("%d", a);
}
如果您需要在多個范圍內使用它,請改用函數。
實際上已經由C++委員會准備..
constexpr
有很多用處還沒有被發掘
constexpr int b(int l) {
int b=0;
for (int i = 0; i < l; i++)
b += i;
return b;
}
int main() {
constexpr int a = b(5);
printf("%d", a);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.