|
You last visited: Today at 01:22
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.
07/09/2014, 15:13
|
#1
|
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
|
|
|
07/09/2014, 15:34
|
#2
|
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
|
Quote:
Originally Posted by MaBarker
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);
}
|
|
|
07/09/2014, 15:40
|
#3
|
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
|
|
|
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.
|
|
|
07/09/2014, 15:44
|
#5
|
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
|
hab ich gemacht keine sorge ^^
Kommt trzd. der fehler.
|
|
|
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.
|
|
|
07/09/2014, 15:48
|
#7
|
elite*gold: 274
Join Date: Jun 2012
Posts: 4,523
Received Thanks: 434
|
Ich adde dich mal kurz in skype ok ? ^^ xd
|
|
|
07/09/2014, 16:20
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Du kannst es auch einfach hier posten.
|
|
|
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).
|
|
|
07/09/2014, 16:59
|
#10
|
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 ^^
|
|
|
07/10/2014, 02:22
|
#11
|
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?
|
|
|
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
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
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.
|
|
|
07/10/2014, 16:14
|
#13
|
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.
|
|
|
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
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.
|
|
|
07/10/2014, 18:59
|
#15
|
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.
|
|
|
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 01:22.
|
|