【问题标题】: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的构造函数

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


【解决方案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 将其他向量添加到末尾?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 2021-04-24
  • 2021-07-27
相关资源
最近更新 更多