🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
2 messages
2 total messages Started by Manchiu Fri, 18 May 2007 08:48
Vectoren C++
#411
Author: Manchiu
Date: Fri, 18 May 2007 08:48
35 lines
1735 bytes
Bij onderstaande vector vliegt hij altijd uit het programma bij het 
statement *einde-- = 0 --> is om de laatste elementen uit de vector op 0 te 
zetten.
Het is Windows en niet C++ die de foutmelding geeft.

Iemand enig idee hoe dit komt ?

Alvast bedankt,

case 2:


 int *einde = liv_vector.end();


 cout <<"VECTOREN:"<<endl;
 cout <<"Welk getal moet uit de lijst verwijderd worden? " << endl;
 cin >> li_getal;

 for(lvi_positie = liv_vector.begin(); lvi_positie < liv_vector.end(); 
++lvi_positie)
 {
  if(*lvi_positie == li_getal)
  {
   *lvi_positie++ = *lvi_positie;
   *einde-- = 0;
   li_teller++;

  }
 cout << *lvi_positie << ", ";

 }
 }

 return 0; 
Re: Vectoren C++
#412
Author: Yannick
Date: Fri, 18 May 2007 11:25
24 lines
1632 bytes
Manchiu wrote:

> Bij onderstaande vector vliegt hij altijd uit het programma bij het
> statement *einde-- = 0 --> is om de laatste elementen uit de vector op 0
> te zetten.

Hallo,

Mijn C++ is een beetje roestig, maar het laatste element in vector kan je
aanspreken via liv_vector.back().  Jij probeert hier liv_vector.end() een
waarde te geven?  Daarenboven is 'einde' niet als iterator maar als int *
gedefinieerd, zodat de -- en * operatoren hier niet doen wat jij denkt.

Om elementen uit een vector te verwijderen kan je gebruik maken van
'algoritmen' die deel uitmaken van de STL.  In jou geval is een combinatie
van 'find' en 'erase' toepasselijk:

liv_vector.erase(liv_vector.find(liv_vector.begin(), liv_vector.end(),
li_getal));

HTH,

-- 
Yannick
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads