像下面这样循环
for(int i=0; i<n; i++) {
vector<int>v(100);
}
在这一点上,我有一个疑问
每次循环都会重复声明向量吗?如果是,为什么不会引起问题(因为如果我们重新声明同一个东西,就会引起问题,就像两次声明int x;)。
每次循环的大小是否会不断增加,是在上面还是在这样的循环中?
for(int i=0;i<10000;i++) {
int k;
}
对于每一个循环,向量会被一次又一次的声明吗?
对于每一次循环,向量都会被再次声明。每次控制通过它的定义时,它将被新的初始化,每次循环的迭代结束。灭顶之灾. 因此,它不会引起重新声明的问题。每次创建向量时,它的大小都是一样的。
每次循环时,大小都会不断增加,直到结束,是在上面还是在这样的循环中?
我不知道你说的是什么意思。循环将运行到 for
条件(即 i<10000
),而每次 k
会被新初始化,然后销毁。
每次循环时,是否会重复声明向量?
不会。
只有声明,但对象是在循环的每一次迭代中被构造,在循环的每一次迭代中被销毁。
下面的例子是不合法的,因为有两个变量的声明。
for(int i=0;i<n;i++)
{
vector<int> v(100);
vector<int> v;
}
在上面的循环中或在这样的循环中,每次循环的大小都在不断增加吗?
我不清楚你说的是什么意思。谁的 大小 你说的是什么?
编译器生成的代码大小?那是不会改变的。
计算机在运行时使用的内存大小?这也不会改变。
运行的时间会不会更长?会的。