【发布时间】:2014-04-13 12:11:23
【问题描述】:
我有 4 个排序的整数数组,我正在尝试将它们合并为一个巨大的排序数组。
我将 A 和 B 合并在一起,这给了我另一个名为 X 的 int 数组 然后我将 C 和 D 合并在一起,这给了我另一个名为 Y 的 int 数组 最后我将 X 和 Y 合并在一起得到 Z,这是最终的产品。
合并函数每次都做同样的事情,只是将结果存储到我想通过引用传入的不同数组中。
我想做这样的事情:
void mergeSort(int arr1[], int arr2, int &result[]){
...
}
但我收到错误“不允许引用数组”。最好的方法是什么?
【问题讨论】:
-
您可以使用本文中提供的任何解决方案吗? stackoverflow.com/questions/12791266/…
-
你为什么不使用
std::vectors? -
@Michał Góral:
std::array<int, Size>并且仅在 C++11 中... -
数组名其实是指针,所以你不必通过引用传递(可以说数组是通过引用传递的,默认情况下),就像你传递int arr1[]一样,传递结果数组那样
-
如果你真的不知道数组的大小是不可能的(即它只能由用户在运行时确定)。但是,如果您知道大小,尽管它是使用模板的变体,但您可以这样做。