losowanie z użyciem klasy

0

Witam, mam taki problem: próbuję napisać konstruktor, który będzie losować liczby do macierzy i potem to wyświetlać, mam tak:

class Macierz {
	std::vector<int> vec_;
	int wiersz_;
	int kolumna_;

public:
	Macierz();
	Macierz(int wiersz, int kolumna);
	void losuj(int wiersz, int kolumna);
	void wyswietl();
};

Macierz::Macierz() {
	
	wiersz_ = 0;
	kolumna_ = 0;
}

Macierz::Macierz(int wiersz, int kolumna) {
	wiersz_ = wiersz;
	kolumna_ = kolumna;
}

void Macierz::losuj(int wiersz, int kolumna) {
	srand(time(NULL));
	//std::vector<int> vec;
	
	wiersz_ = wiersz;
	kolumna_ = kolumna;
	for (int i = 0; i < kolumna_; i++) {
		for (int j = 0; j < wiersz_; j++) {
			j = rand() % 10 + 1;
			vec_.push_back(j);
		}
	}
}

void Macierz::wyswietl() {
	for (auto it = vec_.begin(); it != vec_.end(); it++) {
		std::cout << *it << " ";
	}
}

int main() {

	Macierz a;
	a.losuj(3, 3);
	a.wyswietl();

}

ale w przypadku 3x3 losuje mi raz 4 liczby, innym razem 2 liczby. nie wiem od czego to zależy i co robię źle, proszę o pomoc ;/

0

A próbowałeś kompilować po edycji? Bo to co wkleiłeś się nie kompiluje.

0

znaczy, ja mam to podzielone na pliki cpp i nagłowkowe i się kompiluje

0

W takim razie przygotuj MCVE, bo rozmawianie o problemach w innym kodzie niż przedstawiony mija się z celem.

1

funkcja losuj() coś losuje, a nie konstruktor jak napisałeś w pierwszym zdaniu
a błąd jest tu
j = rand() % 10 + 1;
przypisujesz coś do licznika pętli

0

faktycznie, dzięki za pomoc

0 użytkowników online, w tym zalogowanych: 0, gości: 0