2013-10-05 72 views
1

我有一些对象的动态数组(使用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] ; 
    } 

} 

我想保存在其他一些(静态或动态)阵列

+0

好吧,我加CLASSB –

回答

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()); 
+0

的构造请解释如何在动态数组添加到一个载体,我怎么“使用索引”获得这些阵列 –

+0

阅读起来的http:// en.cppreference.com/w/cpp/container/vector,看看像push_back等成员函数 – billz

+0

不,我必须通过使用动态数组来实现“STACK”。我已经实现了,但希望将所有这些数组保存在一个数组中。我必须通过使用索引来访问所有动态数组,然后使用 –