c ++决定带变量的数组大小

时间:2013-03-16 12:20:32

标签: c++ arrays

我在类中有一个数组:

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

然后在主要部分他们告诉我MAX_EQUIPS的大小应该是什么,我怎么能把它改成呢?它从X开始,然后在输入新的valor时增加或减少。

3 个答案:

答案 0 :(得分:1)

您似乎指的是C ++中不允许的variable length arrays。存在许多可能的替代方案,例如,您可以使用vector

答案 1 :(得分:1)

c ++解决方案将是:

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

private:
  std::vector< int > a_t;
};

答案 2 :(得分:1)

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

private:
    std::vector<int> a_t;

然后当你给出大小时:     a_t.resize(MAX_EQUIPS);

你的a_n将是a_t.size()。

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