如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
How do I create a new array and copy the last elements of the old array into the new array while the new array is smaller?
标题解释了我的问题,但我会更深入地解释。这是我的数组初始值设定项,它只创建一个默认值从 0 到 i + 1 的数组。
void initialize(double *a, unsigned size) {
int val = 0;
for (unsigned i = 0; i < size; i++) {
val = i+1;
a[i] = val;
}
}
这是我的实际问题所在。当新数组的大小较大时,我想出了如何将旧数组的元素复制到新数组中,但我似乎无法弄清楚如何将旧数组的最后一个元素复制到较小的新数组中。else if 语句是我在检查数组大小后想要这样做的地方,而我现在那里的东西不起作用。
void resize(double *&a, int oldSize, int newSize) {
double *a1 = new double[newSize]();
if (newSize > oldSize) {
for (unsigned i = 0; i < oldSize; i++) {
a1[i] = a[i];
}
}
else if(oldSize > newSize) {
for (unsigned i = 0; i < newSize; i++)
{
a1[i] = a[oldSize - newSize + i];
}
}
delete [] a;
a = a1;
}
对我有用
void resize(double *&a, int oldSize, int newSize) {
double *a1 = new double[newSize]();
if (newSize > oldSize) {
for (unsigned i = 0; i < oldSize; i++) {
a1[i] = a[i];
}
}
else if(oldSize > newSize) {
for (unsigned i = 0; i < newSize; i++)
{
a1[i] = a[oldSize - newSize+i];
}
}
delete [] a;
a = a1;
}
25 个第一大小; 10 最后一个元素;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
16 17 18 19 20 21 22 23 24 25
相关文章:
- 如何将元素从向量转移到新数组?
- 如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
- C++ "oldstyle container ":指针/数组/新 - 可能误会?
- 是复制了新数组还是指向结构中引用的数组的指针?
- 标量"新 T "与数组"新 T[1]"
- 如何将大括号初始值设定项用于动态大小数组和新数组?
- 如何按姓氏排序并打印新数组
- 如何修改数组,从中删除空格,然后将其存储在新数组中
- 有没有办法创建一个花哨的迭代器和相应的新数组,以便检查每个索引的索引值的条件?
- 从一系列的evens和赔率中,新数组是持续的第一个赔率
- 在新数组中获取随机值
- 将数组的特定元素移动到新数组
- 我如何使用此二叉搜索函数的修改后的最大/最小值创建新数组
- 如何从函数返回的数组中创建一个新数组
- 合并排序 - 返回新数组,而不是将合并的数组复制到输入数组
- C 2 DIM数组新获得0
- 创建新数组时写入位置时发生访问冲突
- 将 argv 复制到新数组中
- C++中的动态数组(指针数组还是新数组?
- 编译器认为新数组正在创建新对象