在C上创建阵列的具体结构++

问题描述 投票:0回答:1

我想创建在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;
...
}
arrays global-variables structure constants
1个回答
0
投票

你想创建动态大小的数组。

你需要的指针。

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]有地址velocityvelocity[1]有地址velocity + sizeof(double)等等...

寻找C ++阵列动态大小

© www.soinside.com 2019 - 2024. All rights reserved.