如何增加 Class 数组的大小?在 Turbo C++ 中

How do I Increase the size of a Class array? in turbo c++

我写了这个class:

class Spacewalk {
private: 
    char mission[50];
    char date[50];
    char astronaut[50];
    char startingAt[50];
    char endingAt[50];
public:
    void list() {
       // lists the values.
    }
    void addValue(miss, da, astro, start, end) {
         // adds value to the private items.
    }
};

我创建了这个 class 的数组,像这样 -

Spacewalk list[1]; 

比方说,我已经用完了这个数组的 space,我该如何增加它的大小?

数组非常适合学习编码概念,因此我比任何其他标准模板库都更认可它们(在学习代码方面)。

注:
使用 vector 是明智的,但是学校不教这个的原因是因为他们希望您了解诸如 vectorstackqueue。不了解汽车的零件就无法制造汽车。

遗憾的是,在调整数组大小时,除了创建一个新数组并传输元素之外没有简单的方法。最好的方法是保持数组动态。

请注意,我的示例适用于 int(s),因此您必须将其制作成模板或将其更改为您想要的 class.

#include <iostream>
#include <stdio.h>
using namespace std;


static const int INCREASE_BY = 10;

void resize(int * pArray, int & size);


int main() {
    // your code goes here
    int * pArray = new int[10];
    pArray[1] = 1;
    pArray[2] = 2;
    int size = 10;
    resize(pArray, size);
    pArray[10] = 23;
    pArray[11] = 101;

    for (int i = 0; i < size; i++)
        cout << pArray[i] << endl;
    return 0;
}


void resize(int * pArray, int & size)
{
    size += INCREASE_BY;
    int * temp = (int *) realloc(pArray, size);
    delete [] pArray;
    pArray = temp;

}