我想创建在C ++中的一些元素为阵列的结构(如下面的代码)。我想允许用户声明变量的数量,即NVAR,从控制台(如在主要功能是什么评论)。这是当C ++迫使我声明一个常量和全局变量NVAR。
有没有解决我的问题呢?提前谢谢了。
#include <iostream>
using namespace std;
const int nVar = 50;
struct Particle{
double ObjVal;
double BestObjVal;
double Position[nVar];
double Velocity[nVar];
double BestPosition[nVar];
};
int main() {
// int nVar;
// cout << "Enter the number of variables: " << endl;
// cin >> nVar;
...
}
你想创建动态大小的数组。
你需要的指针。
struct Particle{
double objVal;
double bestObjVal;
double* position;
double* velocity;
double* bestPosition;
};
指针是特定类型的变量的存储器地址。在本例中,指向数组的第一double
值的位置。
在身体里 :
Particicle p;
...
std::cin >> nVar;
p.velocity = new double[nVar];
该代码的意思是:我想nVar
双打和保存velocity
第一的位置。因此,velocity[0]
有地址velocity
,velocity[1]
有地址velocity + sizeof(double)
等等...
寻找C ++阵列动态大小