c++ - 如何将数组复制到更大的数组并将零添加到未使用的空间? C++

标签 c++ arrays

C++

我正在制作一个程序,要求用户输入一个数字,将该数字设置为第一个数组的大小,然后根据该大小要求用户输入数字。然后它要求另一个数组大小并将其设置为第二个数组大小。如果第二个数组大小大于第一个,我需要将第一个数组复制到第二个数组中,并将 0 添加到未使用的空间。

例如,输出应该如下所示:

Enter first array size: 3
Enter a number: 45
Enter a number: 54
Enter a number: 65
45 54 65 // First array printed out

Enter second array size: 10
45 54 65 0 0 0 0 0 0 0 // Second array printed out

如果第二个数组更大,我需要帮助将 0 添加到未使用的空间。

另外,我不确定我复制数组的方式是否是最好的方法。

代码片段:

int *secondArray = new int[secondSize]; // Create array

for(int j = 0; j < secondSize; ++j)
{
    secondArray[j] = firstArray[j]; // Set second array equal to first array

    if (secondSize > firstSize)
    {
        // ?
    }

}

最佳答案

就这么简单(但请注意 j 替换了您代码中的 secondSize)--

if (j >= firstSize)
{
    secondArray[j] = 0;
}

编辑:请参阅下面@Fred Larson 关于避免冗余分配的评论。这是活泼的版本:

secondArray[j] = (j >= firstSize) ? 0 : firstArray[j];

关于c++ - 如何将数组复制到更大的数组并将零添加到未使用的空间? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315097/

相关文章:

c++ - 扩展类 c++ 的循环包含问题

c++ - 概念指针数组

java - java中作为递归参数的列表与数组

ios - Swift:无法将类型 'String' 的值转换为预期的参数类型 '@noescape (AnyObject) throws -> Bool'

Javascript:在数组中查找对象的索引,不知道索引,只知道对象

javascript - 为什么 `arr.find()` 返回 `undefined` ?

c++ - 我无法访问我的变量的值,即使我通过作用域传递了它

c++ - STL::find_if 与用户搜索

c++ - 如何在 ASM 中创建循环?

在 C 中的指针数组中搜索值的编译器依赖性