Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:37

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] for(auto it : mlist) Problem

Discussion on [C++] for(auto it : mlist) Problem within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
MaBarker's Avatar
 
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
[C++] for(auto it : mlist) Problem

Hey,
Ich versuche mich gerade damit bei C++ an einem kleine Spiel über SFML.
Ich lerne es gerade anhand eines bzw. mehrere Videos bzw. Tutorials.


Ich habe jedoch das Problem das in dem Tutorial eine Methode genutzt wird die ich nicht nutzen kann da sie meines wissen für die Visual Studio 11 Version genutzt werden kann und ich habe die version 10.

Es handelt sich um folgendes beispielsweise folgendes Problem:

Code:
void AsteroidManager::update(float frametime)
{
	for(auto it : mList)
	{
		it->update(frametime);
	}
}
Ich kann die schleife nicht nutzen bzw. das auto it : mList.
Die mList habe ich bereits in einer anderen klasse definiert (in dem Fall eine liste der Bots (asteroiden in dem Spiel.))

Tutorial auf welches die Frage bezogen ist:

Stelle: 6.26 Minute
MaBarker is offline  
Old 07/09/2014, 15:34   #2
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
Quote:
Originally Posted by MaBarker View Post
Tutorial auf welches die Frage bezogen ist:
Sehe da jetzt keine Frage.
Aber du kannst es mal so versuchen.
Code:
for(std::vector<typDerKlasse>::iterator it = mList.begin(); it != mList.end(); ++it)
{
    it->update(frameTime);
}
th0rex is offline  
Thanks
1 User
Old 07/09/2014, 15:40   #3
 
MaBarker's Avatar
 
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
Danke jedoch habe ich nun die meldung das keine Benutzerdefinierte Konvertierung vorhanden sei ? o.O
MaBarker is offline  
Old 07/09/2014, 15:41   #4
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
Du musst auch schreiben std::vector<TYPDENDERVEKTORSPEICHERT>::iterator und nicht meins kopieren. Also der Typ der in mList gespeichert wird.
th0rex is offline  
Old 07/09/2014, 15:44   #5
 
MaBarker's Avatar
 
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
hab ich gemacht keine sorge ^^
Kommt trzd. der fehler.
MaBarker is offline  
Old 07/09/2014, 15:45   #6
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
Dann zeig doch mal die deklaration von dem vector (mList) und den code den du hast. Ohne den kann ich dir schlecht weiter helfen.
th0rex is offline  
Old 07/09/2014, 15:48   #7
 
MaBarker's Avatar
 
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
Ich adde dich mal kurz in skype ok ? ^^ xd
MaBarker is offline  
Old 07/09/2014, 16:20   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Du kannst es auch einfach hier posten.
MrSm!th is offline  
Thanks
1 User
Old 07/09/2014, 16:28   #9


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Sieht nicht so aus als ob der Typ in dem Video Ahnung hätte. Er sagt, das der Datentyp zur Laufzeit erkannt wird (sofern man auto nutzt), fährt 2 Sekunden danach über die Variable, sieht den erkannten Datentypen und erwähnt sogar noch, das der nun erkannt wurde. Bestätigt nun wiedermal die Qualität von YouTube Tutorials.

€: Gut, er hat teilweise stark improvisiert weil er das Feature nicht einmal kannte, bevor er es genutzt hat aber da sollte er sich vorher trotzdem informieren.

Zudem würde ich hier zu auto& raten, sofern es angebracht ist. Dann sparst du dir nämlich auch die Kopiererei.

Ansonsten kannst du auch omitma's Methode nutzen, wobei ich das allerdings nur benutze, wenn ich den iterator irgendwann in der Schleife mal brauche (für std::vector<T>::erase(it) zum Beispiel).
Mostey is offline  
Thanks
1 User
Old 07/09/2014, 16:59   #10
 
MaBarker's Avatar
 
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
Yo ich hab mit omitma jz geschrieben und er hat mir geholfen ^^
Aufjedenfall klappt es jz.

Wär nett wenn wer den Thread closen könnte ^^
MaBarker is offline  
Old 07/10/2014, 02:22   #11

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Quote:
Zudem würde ich hier zu auto& raten, sofern es angebracht ist. Dann sparst du dir nämlich auch die Kopiererei.
Wenn man schon eine Referenz benutzt, dann sollte sie auch gleich, sofern nicht anders benötigt, const sein. auto& suggeriert, dass da was verändert wird. const auto& nicht.

Quote:
Ansonsten kannst du auch omitma's Methode nutzen, wobei ich das allerdings nur benutze, wenn ich den iterator irgendwann in der Schleife mal brauche (für std::vector<T>::erase(it) zum Beispiel).
Welche Alternativen schlägst du vor, wenn kein C++11 vorhanden ist?
Delinquenz is offline  
Old 07/10/2014, 14:47   #12


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by Delinquenz View Post
Wenn man schon eine Referenz benutzt, dann sollte sie auch gleich, sofern nicht anders benötigt, const sein. auto& suggeriert, dass da was verändert wird. const auto& nicht.
Eine Update Methode "suggeriert" aber, das etwas verändert wird. const wäre an dieser Stelle nicht angebracht.


Quote:
Originally Posted by Delinquenz View Post
Welche Alternativen schlägst du vor, wenn kein C++11 vorhanden ist?


Ist ja nicht so, als ob es keine anderen Möglichkeiten vor C++ 11 gegeben hätte.
Mostey is offline  
Old 07/10/2014, 16:14   #13

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Quote:
Eine Update Methode "suggeriert" aber, das etwas verändert wird. const wäre an dieser Stelle nicht angebracht.
Hm, dann ergibt der Ausgangscode keinen Sinn, mein Fehler.

Quote:
Ist ja nicht so, als ob es keine anderen Möglichkeiten vor C++ 11 gegeben hätte.
Hast du dir den Link mal angeschaut? Da sind keine gescheiten Alternativen, es sei denn, du empfindest eine "Random Access" Iteration als gescheit.
Delinquenz is offline  
Old 07/10/2014, 17:18   #14


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by Delinquenz View Post
Hast du dir den Link mal angeschaut? Da sind keine gescheiten Alternativen, es sei denn, du empfindest eine "Random Access" Iteration als gescheit.
Bleibt ja wohl keine andere Möglichkeit, oder? Wenn du weißt wie es besser geht, kannst du uns gerne aufklären.

Ich sehe übrigens kein Problem in den Beispielen, die dort geposted wurden.
Mostey is offline  
Old 07/10/2014, 18:59   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Bleibt ja wohl keine andere Möglichkeit, oder?
Doch, Iteratoren.
MrSm!th is offline  
Reply


Similar Threads Similar Threads
Shaiya MultiBot v1.6#Auto potion,auto collection,auto stroke,auto skill
06/01/2012 - Shaiya Hacks, Bots, Cheats & Exploits - 12 Replies
http://d1205.hizliresim.com/x/5/5bjkl.jpg Hello everyone friends. I took off and I wanted to share the new version of Hilemizin. Other editions, a new difference: * Layout option 2.Skill. One trick from Image; http://c1205.hizliresim.com/x/4/59sgl.jpg Use the same fashion as yet. Slot {1} / Flat Beat Flat Beat Talent = 1 you put in the game. That it is the other options we.



All times are GMT +2. The time now is 18:37.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.