Problem z wektorami w klasie

0

Witam. Co w tej klasie mam nie tak że wywala mi takie błędy?

Błędy: https://cdn.discordapp.com/attachments/531453985694154762/573124163284369414/Przechwytywanie.PNG

#include <vector>
#include <string>
#include <cstring>


class Mapa {

private:

	int szer_mapa_p;
	int ilosc_miejsc_na_mapie_p;
	vector <char> mapka_s;

public:

	bool istnieje;

	string setMap(int szer_mapa, int ilosc_miejsc_na_mapie, vector <string> mapka) {
	
		if ((mapka.size() != ilosc_miejsc_na_mapie) || (szer_mapa*szer_mapa != ilosc_miejsc_na_mapie)) {
			return "Error: setMap!";
		
		}
		else {
			for (int x = 0; x < ilosc_miejsc_na_mapie; x++) {
				mapka_s.push_back(mapka[x]);
			}
			return "OK";
		}

	}



};
0

Byłoby łatwiej gdybyś w komunikatach pozostawił numery wierszy. Nie sądzę żeby komukolwiek się chciało szukać oczami. Oczywisty problem jaki widać, to do wektora znaków usiłujesz dołączyć string. Jeśli rzeczywiście o to chodzi, to trzeba kopiować iteratorami.

1

mapka powinna być typu vector<char>.
Z innej beczki, obiekty które mogą być potencjalnie duże powinny być przekazywane jako const &, czyli

 string setMap(int szer_mapa, int ilosc_miejsc_na_mapie, const vector<char>& mapka)

A tak w ogóle to jesteś pewien, że potrzebujesz vector<char>, a nie string?
No i ta funkcja setMap wygląda podejrzanie. Nigdzie nie ustawiasz tych dwóch intów szer_mapa_p i ilosc_miejsc_na_mapie_p, a nazwa sugeruje, że wystarczy skopiować cały obiekt mapka_s = mapka, a nie literkę po literce.

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