1

我在一个类中有一个数组,它是:

private:
    static const int MAX_EQUIPS=100;
    equip a_t[MAX_EQUIPS];
    int a_n;

然后他们主要告诉我 MAX_EQUIPS 大小应该是多少,我怎样才能让它改变?它从 X 开始,然后在输入新的 valor 时增加或减少。

4

3 回答 3

1

您似乎指的是 C++ 中不允许的可变长度数组。存在许多可能的替代方案,例如您可以使用向量

于 2013-03-16T12:23:50.207 回答
1

C++ 解决方案是:

class MyClass
{
public:
  MyClass( size_t n ) :
    a_t( n )
  {
  }

private:
  std::vector< int > a_t;
};
于 2013-03-16T12:25:20.450 回答
1

我建议为此使用 std::vector ,因为它本身会包装大部分内容。

private:
    std::vector<int> a_t;

然后,当您获得大小时: a_t.resize(MAX_EQUIPS);

你的 a_n 将是 a_t.size()。

但是,如果你真的想自己做,你需要做一些分配(你应该与 ctor/dtor 语义相关联。

于 2013-03-16T12:26:21.107 回答