如何增加 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
是明智的,但是学校不教这个的原因是因为他们希望您了解诸如 vector
、stack
或 queue
。不了解汽车的零件就无法制造汽车。
遗憾的是,在调整数组大小时,除了创建一个新数组并传输元素之外没有简单的方法。最好的方法是保持数组动态。
请注意,我的示例适用于 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;
}
我写了这个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
是明智的,但是学校不教这个的原因是因为他们希望您了解诸如 vector
、stack
或 queue
。不了解汽车的零件就无法制造汽车。
遗憾的是,在调整数组大小时,除了创建一个新数组并传输元素之外没有简单的方法。最好的方法是保持数组动态。
请注意,我的示例适用于 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;
}