Som úplný začiatočník C++ a bolo pridelené, ak chcete napísať funkciu, ktorá vracia faktorov číslo. Nižšie som už zahrnuté funkcia tiež som vytvoril s názvom print_vector
že bude tlačiť všetky prvky vektora na Konzoly.
V mojom priradenie, s cieľom zistiť, či factorize
funkcia pracuje, musíme použiť test_factorize
funkcie za predpokladu, ktorú som si tiež zahrnuté. Avšak, problém som bežať v je, že vzhľadom na test_factorize
nefunguje kvôli chybe "Počiatočnú hodnotu odkaz na non-konšt musí byť lvalue." Ja som si nie ste istí, čo to znamená a prečo test_factorize
beží do problém, pretože výstup factorize
je vektor a vstup print_vector
je tiež vektor, tak nevidím dôvod, prečo obsah test_factorize
výsledok chyba, keď mám podozrenie, že to môže byť niečo v "factorize' funkcia som definovaný, ktoré spôsobuje táto chyba.
#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));
}