Vector Problem
-
Da ich grad meinen Source dem ich mit vs2003 erstellt habe auf 2010 update bekomme ich ein paar Fehler.
Einer von ihnen ist folgender:vector<u_long>::iterator where = &(m_vecGuildList[nIndex]);
m_vecGuildList ist als vector<u_long> definiert.
Jedoch bekomm ich nun den Error:
error C2440: 'Initialisierung': 'unsigned long *' kann nicht in 'std::_Vector_iterator<_Myvec>' konvertiert werdenWäre diese schreibweise die selbe:
vector<u_long>::iterator where = m_vecGuildList.begin() + (nIndex+1);Freue mich über jede Hilfe!
-
Was Du da machst ist auch ziemlich undefiniert, würde ich tippen. Das zweite sollte es tun, wenn Du das +1 weglässt, vermute ich, ohne zu wissen, was Du genau machen willst.
-
Ich möchte im späteren Verlauf ein bestimmtes Element über
m_vecGuildList.erase( where );
löschen.Wenn ich .begin benutze, fängt der Vektor dann nicht bei 1 an?
Wenn nIndex den Wert 8 hat, und ich .begin() verwende dann muss ich ja noch nIndex-1 addieren oder liege ich da falsch ?
-
Was soll denn in nIndex drin stehen? Ich nehme doch an ein Index beginnend bei 0? begin gibt den iterator aufs erste Element, begin+1 aufs zweite und begin+nIndex auf das Element mit dem Index nIndex.
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x, bzw. C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.