在C++中创建数组的特定结构



我想在C++中创建一个结构,其中的一些元素是数组(如以下代码(。我想允许用户从控制台声明变量的数量,即 nVar(就像在 main 函数中评论的那样(。这是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]有地址velocityvelocity[1]有地址velocity + sizeof(double)等等......

查找具有动态大小C++数组

相关内容

  • 没有找到相关文章

最新更新