Problem z wektorami
Ostatnio zmodyfikowano 2012-06-30 14:40
palkoul Temat założony przez niniejszego użytkownika |
Problem z wektorami » 2012-06-30 10:53:57 Witam. Pisząc "ekwipunek" do gry, napotkał mnie błąd. Powiedzmy, że mamy w wektorze 3 elementy. Chcę podnieść element z numerkiem 1, lecz nie mogę bo najpierw muszę podnieść najwyższy element wektora, czyli 2. Rysowanie GUI: if( Przedmioty.size() > 0 && gr1.zwiad == false )
{ for( int pi = 1; pi < Przedmioty.size(); pi++ ) { if( gr1.y == Przedmioty[ pi ].y && gr1.x == Przedmioty[ pi ].x && Przedmioty[ pi ].z == gr1.z ) { attron( COLOR_PAIR( 1 ) ); mvprintw( 19, 34, "PODNIES:" ); mvprintw( 19, 43, "%s", Przedmioty[ pi ].name.c_str() ); mvprintw( 19, 44 + Przedmioty[ pi ].name.length(), "%s", Przedmioty[ pi ].znak.c_str() ); attroff( COLOR_PAIR( 1 ) ); gr1.podp = true; gr1.podpi = pi; } else { gr1.podp = false; gr1.podpi = - 1; } } }
Rysowanie na mapie: if( Przedmioty.size() > 0 ) { for( int pi = 1; pi < Przedmioty.size(); pi++ ) { if( zwiad_y == Przedmioty[ pi ].y && zwiad_x == Przedmioty[ pi ].x && Przedmioty[ pi ].z == gr1.z ) { attron( COLOR_PAIR( 1 ) ); mvprintw( 9, 36, "%s", Przedmioty[ pi ].name.c_str() ); mvprintw( 9, 34, "%s", Przedmioty[ pi ].znak.c_str() ); attroff( COLOR_PAIR( 1 ) ); } } }
Usuwanie elementu: if( gr1.podp == true ) { Przedmioty.erase( Przedmioty.begin() + gr1.podpi ); }
Jak nie wiecie o co chodzi (nie umiem tłumaczyć) to zapodam demko. Z góry dziękuje. |
|
DejaVu |
» 2012-06-30 14:18:59 1. Zamiana elementów miejscami: swap.
2. Vector raczej jest marnym kontenerem do wykonywania wszelkiego rodzaju przemieszczeń. Dodać na końcu: tak, usunąć z końca: tak, mieć dostęp do wszystkich elementów i je modyfikować: tak - w każdym innym przypadku: nie :) |
|
Drraven |
» 2012-06-30 14:36:09 Zamiast wektora użyj mapy będziesz miał dostęp do każdego elementu w każdej chwili :D |
|
palkoul Temat założony przez niniejszego użytkownika |
» 2012-06-30 14:40:16 Okej, dzięki za info, zaraz coś wykombinuję z tymi mapami :) |
|
« 1 » |