如何将对象的动态数组保存在单个数组中
Posted
技术标签:
【中文标题】如何将对象的动态数组保存在单个数组中【英文标题】:How to save dynamic arrays of Objects in single array 【发布时间】:2013-10-05 10:19:25 【问题描述】:我有一些对象的动态数组(在 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] ;
我想将所有这些数组保存在其他(静态或动态)数组中
【问题讨论】:
好的,我添加classB的构造函数 【参考方案1】:只需使用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());
【讨论】:
请解释如何将动态数组添加到向量中,以及如何“使用索引”获取这些数组 阅读en.cppreference.com/w/cpp/container/vector,看看push_back等成员函数 不,我必须使用动态数组来实现“堆栈”。我已经实现但想将所有这些数组保存在一个数组中。我必须稍后使用索引访问所有动态数组 只有一个向量,然后调用 std::vector::insert 将其他向量添加到末尾?以上是关于如何将对象的动态数组保存在单个数组中的主要内容,如果未能解决你的问题,请参考以下文章