Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Index Problem bei vektor

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.03.2006, 00:08 Uhr
~Jipi
Gast


Hallo,
ich habe wohl ein sinnloses Problem aber ich würde trotzdem gerne eure Ideen/Hilfe erfragen.

Angenommen ich habe ein Array mit 5 Plätzen. _ _ _ _ _
jetzt würde ich gerne in einer for-schleife immer das vor-vor-liegende element (current idx -2) element bekommen.

Das Problem besteht nun darin dass bei den ersten elementen ein idx-2 nicht existiert.
Negative Indizes muss ich also vermeiden. Jetzt würde ich aber dennoch mit der Anweisung idx-2 arbeiten wollen. Vielleicht kann man irgendwie negative Indizes auf das maximale/minimale element mappen? Also -1 -> 0 und -2 -> 0 ...Falls aber ein idx-2 existiert dann ok...
Im herkömmlichen sinne einfach mit ner if-abfrage ja ich weiß....aber ich brauche das ungefähr so:

if(curr_idx == 1 && curr_idx-1 == 1 && curr_idx-2 == 1) ...
und das in der schleife.
und ich habe keinen bock so abzufragen:
if curr_idx-1 existent:
if curr_idx-2 existent:
....
else ....
else....

War das jetzt verständlich ?

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.03.2006, 00:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
(if curr_idx <0) curr_idx = 0;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.03.2006, 07:13 Uhr
Tommix



'Morgen,
curr_idx zu ändern ist vermutlich nicht gewollt.
Eine Variante wäre

C++:
array[curr_idx-(curr_idx > 0)-(curr_idx > 1)];


was allerdings am Ende wenig lesbar ist. Bei einer festen, nicht zu großen Arraygröße wäre auch denkbar die Indizes quasi vorzubereiten:

C++:
int vorvorgaenger[] = {0, 0, 1, 2, 3};
var = array[vorvorgaenger[cur_idx]];


Zum dritten könnte man das Array auf sieben Elemente erweitern und das eigentlich nullte Element auf Position 2 speichern. Damit wären dann für alle Elemente zwei Vorgänger vorhanden.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: