我想知道哪一个是在循环之外使用在循环内创建的值的最佳方法。我有例如函数:
void Loop(int a)
{
// recursion loop execution
for ( int i = 0; i < 10; i++ )
{
int new_a = a + i;
}
}
我想用那个&#34; new_a&#34;因为它正在被环绕&#34;在绘制图形的另一个函数中,只需要&#34; yAxe&#34;值。像那样:
int main ()
{
int a = 5;
plot (x,Loop(int a);
}
我知道我可以使用循环的值创建一个数组,但我不想存储它们,而对于大的绘图则会有太多的内存。
答案 0 :(得分:0)
当它们的范围完成时,任何局部变量都将被销毁。例如,代码new_a
将在for循环结束时被销毁,并且a
在函数完成时被销毁。我的意思是,如果你关心记忆,不要担心。
答案 1 :(得分:0)
如果我理解正确,您想多次致电Loop(a)
(例如class LoopClass
{
public:
LoopClass(int initial_value = 0)
: current_value{initial_value}
{
}
int operator()(int a)
{
return a + current_value++;
}
private:
int current_value;
};
)并且每次通话都应该获得循环的下一次“迭代”?
如果C ++有continuations,那就不容易了。相反,它可以通过使用类和对象以及运算符重载来模拟。
例如:
LoopClass Loop; // The value initialized with zero
int a = 5;
std::cout << "First call : " << Loop(a) << '\n';
std::cout << "Second call: " << Loop(a) << '\n';
可以这样使用:
<style>
/***Student list***/
ul#stdList{
width:fit-content;
margin:15px auto 10px auto;
overflow:hidden;
}
ul#stdList li{
letter-spacing:.05em;
color:#0a93cd;
display:block;
float:left;
font:24px arial;
padding:7px 7px;
margin:0px 4px;
text-align:center;
}
ul#stdList li:hover{
border-color:#444;
}
.img-circle {
border-radius: 50%;
}
</style>
上面的代码,如果放入程序,应该打印
First call : 5 Second call: 6