如何在单个数组中保存动态对象数组

时间:2013-10-05 10:19:25

标签: c++ arrays visual-c++

我有一些动态的对象数组(在C ++中)并在我的实现中使用它们。如何将这些数组存储在某个单个数组中。例如,

class classA{
} ;

class classB {

  private:
     // Dynamic arrays, initialized in constructor
     classA *arr1 ;
     classA *arr2 ;
     classA *arr3 ;
     classA *arr4 ;

  public:
     classB() {
         // initialization
         arr1  = new classA [10] ;
         arr2  = new classA [10] ;
         arr3  = new classA [10] ;
         arr4  = new classA [10] ;
     }

}

我想将所有这些数组保存在其他(静态或动态)数组中

1 个答案:

答案 0 :(得分:2)

只需使用std::vector,它在C ++中称为动态数组,通常用作默认容器。

class classB
{
public:
    classB()
    : arr1(10), arr2(10), arrN(10)
    {}
private:
  std::vector<classA> arr1;
  std::vector<classA> arr2;
  //....
  std::vector<classA> arrN;
};

更新

如果你有一些矢量,你想要一个添加到另一个。见下面的样本:

std::vector<classA> arr1;   
std::vector<classA> arr2;
// add something to arr1
// add something to arr2

arr1.insert(arr1.end(), arr2.begin(), arr2.end());