我是C ++的初学程序员。我正在尝试创建一个返回数字因子的函数原型。但是,我从函数原型中返回多个值时所看到的所有方法都需要事先知道将返回的值的数量,这对于因式分析是不可能的。
我在Python中所做的是:
def findfac(n):
factors = [1, n] # Make an array
i = 2.0
while i < n:
if i not in factors and (n/i).is_integer():
factors += [i, n/i]
i += 1
return factors
这将返回一个包含所有n因子的数组。
问题在于,虽然我可以将无限数量的元素转储到Python数组中,但C ++数组的最大大小。那么有没有办法在C ++中返回动态数组,还是应该重新考虑我的方法?
答案 0 :(得分:4)
您正在寻找std::vector
:
#include <vector>
std::vector<int> findfac(int n)
{
std::vector<int> factors{1, n}; // factors = [1, n]
int i;
// TODO
factors.push_back(i); // factors = [1, n, ..., i]
// TODO
return factors; // factors = [factors of n...]
}
std::vector::vector
,std::vector::push_back
,std::vector::size