在运行程序时,我想调整ZZ矢量的大小。有没有办法,怎么做?我找到了方法.setLenght()或者.DosetLenght(),但是似乎只是初始化步骤,因为pro/gram拒绝用这些方法改变向量。
非常感谢。
Vec<ZZ> v1,v2;
v1.SetLength(8);
v2.SetLength(8);
ZZ velkeCislo,odmocnina,factor,test;
long i = 0;
cin >> velkeCislo;
odmocnina = SqrRoot(velkeCislo);
cout << "new v1 dlzka " << v1.length() << endl;
for(i=0;i<v1.length();i++) {
v1(i) = odmocnina;
odmocnina++;
cout << "Number1 " << v1(i) << endl;
}
for(i=0;i<v1.length();i++){
v2(i)=(v1(i)*v1(i))-velkeCislo;
cout << "Number2 " << v2(i) << endl;
}
bool found=false;
int tp = v1.length();
cout << "old v1 " << v1.length() << endl;
v1.SetLength(tp+1); //causes error
cout << "new v1 " << v1.length() << endl;发布于 2013-12-01 16:46:35
您的代码的问题也解释了这里。您正在使用v1(i)方法访问数组,但这是一个基于1的索引系统,因此程序中有超出边界的访问权限。将v1(i)替换为v1[i] (这是基于零的),您的程序应该可以工作。
https://stackoverflow.com/questions/20313784
复制相似问题