【问题标题】:how to change array elements after initialization初始化后如何更改数组元素
【发布时间】:2017-03-10 10:38:21
【问题描述】:

非常菜鸟的问题,我提前道歉。

我声明并初始化了一个数组 X。我使用该数组,稍后在代码中我希望 X 采用新值。

double X[2] = { 0.85, 0.15 };
//some code using X[]

X = { 0.84, 0.16 }; //--> this gives "error: assigning to an array from an initializer list"
//more code using X[]

X[] = { 0.84, 0.16 }; //--> this gives "error: expected primary-expression before ‘]’ token"
//more code using X[]

这样做的正确方法是什么?

【问题讨论】:

  • X[0]=1X[1]=2 怎么样?

标签: c++ arrays initialization


【解决方案1】:

这是不可能的,但你可以使用std::array<double, 2>。由于X 将是一个对象,因此您的符号将是有效的。嗯……差不多。您必须像 X = {{0.84, 0.16}}; 一样写它(另外一对大括号)。

【讨论】:

    【解决方案2】:

    您不能为数组分配新值,您需要单独分配元素。

    X[0] = 0.84;
    X[1] = 0.16;
    

    【讨论】:

      【解决方案3】:

      初始化器列表仅在初始化期间可用。

      您可以使用以下任一数组来初始化名称为X的数组

      double X[ ] = { 0.85, 0.15 }; // initialize array X with 2 values 
      
      double X[2] = { 0.85, 0.15 }; // initialize array X with 2 values with size
      

      如果你很想以上述方式声明,你可以这样做。

      std::array<double, 2> X;
      X = {0.64,0.16};
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-06
        • 2015-01-28
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多