我想调用一个需要整数数组的函数。每次我想调用函数时,如何在不创建新的整数数组的情况下执行此操作?
这就是我想要做的事情:
someFunction(new int[]{obj[0].getInt(), obj[1].getInt()});
而不是这样做:
int intArray[2] = {obj[0].getInt(), obj[1].getInt()};
someFunction(intArray);
答案 0 :(得分:4)
假设您可以使用C ++ 11,您可以定义somefunction
来取std::vector
(或std::vector const &
)而不是实际数组,然后使用:
somefunction({obj[0].getInt(), obj[1].getInt()});
与Java不同,不需要在C ++中定期使用new
。事实上,在大多数编写良好的代码中,这都是相当不寻常的。
顺便说一句,你通常想要避免使用C ++的内置数组,而C ++ 11更容易做到这一点,以至于根本没有充分理由使用它们。