Hej, zacząłem się trochę uczyć wektorów i chciałem je zaimplementować do mojego "menu", no i natknąłem się na problem, bo w podanej niżej funkcji nie mogę użyć metody resize() dla wektora.
Nie zbyt się orientuje, a to że program mi mówi, że błąd jest w pliku stl_construct.h nie pomaga.
for (unsigned N = 0; N < panels.size(); N++) {
window.draw(panels.at(N).desk);
window.draw(panels.at(N).title);
for (unsigned i = 0; i < panels.at(N).buttons.size(); i++){
if (b_isClicked(panels.at(N).buttons.at(i).body, events) == true){
b_ISCLICKED(i, N);
//wykonuje polecenie wciśniętego przycisku
}//sprawdza czy przycisk został wciśnięty
else {
window.draw(panels.at(N).buttons.at(i).body);
window.draw(panels.at(N).buttons.at(i).text);
}//rysuje zawartość przycisków
}
}
void MenuModule::b_ISCLICKED(unsigned i, unsigned N)
{
switch (panels.at(N).pType)
{
case menu_typ:{
if (i == 4){
PanelType type = exit_pup;
Panel panel(*settings, type);
panels.push_back(panel);
}
else {
if (panels.size() > 1)
panels.resize(1); ///!!!
panels.resize(2); ///!!!
PanelType type = (PanelType)(i+1);
Panel panel(*settings, type);
panels.push_back(panel);
}
break;}
... ...
Wdzięczny będe bardzo za pomoc
Z tego co sam rozumiem to główna pętla będzie się wykonywać dopóki jest mniejsza niż rozmiar wektora, a że pobiera go za każdym razem to nie powinno być chyba błędu logicznego. W wewnętrznej pętli próbowałem zmieniać wartość z panels(N) na jakąś inną zmienną ale nic to nie daje
Jakoś więcej pomysłów nie mam...