在像下面这样的循环中
for(int i=0; i<n; i++) {
vector<int>v(100);
}
Run Code Online (Sandbox Code Playgroud)
在这方面我有一个疑问
对于每个循环,向量会被一次又一次地声明吗?如果是,为什么它不会导致问题(因为如果我们重新声明相同的东西,它会导致问题,例如两次 int x;)。
大小在每个循环中不断增加直到结束,在上面或这样的循环中
for(int i=0;i<10000;i++) {
int k;
}
Run Code Online (Sandbox Code Playgroud)
对于每个循环,向量会被一次又一次地声明吗?
对于每个循环,向量将再次声明。每次控件通过它的定义时,它都会被重新初始化,并且每次循环的迭代结束时,它都会被销毁。因此,它不会导致重新声明问题。每次创建向量时,它的大小都相同。
大小在每个循环中不断增加直到结束,在上面或这样的循环中
我不确定你的意思。循环将一直运行直到满足for条件(即i<10000),并且每次都k将重新初始化然后销毁。
对于每个循环,向量会被一次又一次地声明吗?
不。
只有声明,但对象在循环的每次迭代中构造并在循环的每次迭代中销毁。
以下是非法的,因为有两个变量声明。
for(int i=0;i<n;i++)
{
vector<int> v(100);
vector<int> v;
}
Run Code Online (Sandbox Code Playgroud)
大小在每个循环中不断增加直到结束,在上面或这样的循环中
不清楚你的意思。你说的是谁的尺码?
编译器生成的代码大小?这不会改变。
计算机在运行时使用的内存大小?这也不会改变。
是否需要更长的运行时间?是的。