Jsem úplný začátečník v C++ a byl přidělen napsat funkci, která vrátí faktory čísla. Níže jsem zařadil funkci jsem také vytvořil tzv. print_vector
které se budou tisknout všechny prvky vektoru do Konzole.
V můj úkol, aby zkontrolovat, zda factorize
funkce pracuje, budeme muset použít test_factorize
podle funkce, které mám také v ceně. Nicméně, problém jsem běžet do je, že vzhledem k test_factorize
nefunguje z důvodu chyby "Počáteční hodnota odkaz na non-const, musí být lvalue." Já jsem si nejste jisti, co to znamená a proč test_factorize
narazí na problém, protože výstup z factorize
je vektor a vstup print_vector
je také vektor, takže nevidím důvod, proč obsah test_factorize
následek chybu, i když jsem podezření, že by mohlo být něco v `faktorizovat funkce jsem definovala, který způsobuje tuto chybu.
#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));
}