使用'new'数组参数调用C ++函数

时间:2012-07-25 19:36:34

标签: c++ arrays argument-passing

我想调用一个需要整数数组的函数。每次我想调用函数时,如何在不创建新的整数数组的情况下执行此操作?

这就是我想要做的事情:

someFunction(new int[]{obj[0].getInt(), obj[1].getInt()});

而不是这样做:

int intArray[2] = {obj[0].getInt(), obj[1].getInt()};    
someFunction(intArray);

1 个答案:

答案 0 :(得分:4)

假设您可以使用C ++ 11,您可以定义somefunction来取std::vector(或std::vector const &)而不是实际数组,然后使用:

somefunction({obj[0].getInt(), obj[1].getInt()});

与Java不同,需要在C ++中定期使用new。事实上,在大多数编写良好的代码中,这都是相当不寻常的。

顺便说一句,你通常想要避免使用C ++的内置数组,而C ++ 11更容易做到这一点,以至于根本没有充分理由使用它们。