我是一个完整的初级到C++和被分配到编写一个函数,返回的因素的数量。 下面,我已经包括的功能我还创建了所谓的 print_vector
这将打印的所有要素的矢量控制台。
在我的任务,以便检查 factorize
功能工作时,我们必须使用 test_factorize
提供的功能,我有也包括在内。 然而,这个问题我已经运到的是,鉴 test_factorize
不会的工作由于错误"初始价值的参考非常量必须左值。" 我不确定这意味着什么和为什么 test_factorize
跑进一个问题,因为输出 factorize
是一个矢量和输入 print_vector
也是一个矢量,所以我不明白为什么内容 test_factorize
结果在一个错误,虽然我怀疑这可能是内的`因式分解'功能我定义,导致这一错误。
#include <iostream>
#include <vector>
using namespace std;
void print_vector(std::vector<int>& v) {
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
std::vector<int> factorize(int n) {
std::vector<int> answer;
for (int i = 1;i < n + 1; ++i) {
if (n % i == 0) {
answer.push_back(i);
}
}
return answer;
}
void test_factorize() {
print_vector(factorize(2));
print_vector(factorize(72));
print_vector(factorize(196));
}