Referencja na tablice kolejek, modyfikująca jej zawartość

0

Jeśli mam tablice kolejek: queue < int > K[100], i chcę napisać funkcję która przez referencje będzie modyfikowała jej zawartość, to jak mam to zrobić?

Wydaje mi się, że powinno to wyglądać tak:

void funkcja( queue < int > (*N)[100]) { }

int main()
{
queue < int > K[100];

funkcja((&K)[100]);

}

Kompilator jednak wywala błąd:

error: cannot convert 'std::queue<int>*' to 'std::queue<int> (*)[100]' for argument '1' to 'int kopiujKdN(std::queue<int> (*)[100], std::queue<int> (*)[100])'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Z góry dziękuje za odpowiedź i pozdrawiam.

3

No prawie.

Poprzez referencję:

void funkcja( queue < int > (&N)[100]) { }

int main()
{
    queue < int > K[100];
    funkcja(K);
}

Albo poprzez wskaźnik:

void funkcja( queue <int> (*N)[100]) { }

int main()
{
    queue <int> K[100];
    funkcja(&K);
}
5

Blisko:

void funkcja( queue < int > (*N)[100]) { }

int main()
{
	queue < int > K[100];
	
	funkcja((&K));
	
}

Tylko dlaczego nie użyć std::array lub std::vector i przyjąć przez referencję z ludzkim syntaxem?

0

@kq:
Co do std::array i std::vector, dzięki za radę, muszę tylko ogarnąć co to.

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