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 werden

    Wä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.


Log in to reply