Neues Listenelement, mit Nummer als Namensmembervariable, erstellen
-
In "class warehouse {" erstelle ich die Liste
"public: list<Department> m_departments;};",
welche Elemente von "class Department
{public: int m_number; Product* m_pproduct;};" enthält.Nachdem ich in der Mainfunktion
"Department empty_department;" definiert,
"empty_department.m_number = 1;" zugewiesen und
"m_departments.push_back(empty_department);" anfügt habe, ist "empty_department.m_number==1" wahr.
"(*m_departments.end()).m_number==0" aber leider auch.Weshalb funktioniert die Zuweisung nicht ?
-
Der end-Iterator von praktisch jedem Container, bezieht sich nicht auf ein gueltiges Element. Man kann es sich eher so vorstellen (bei vielen Containern ist das sogar wortwoertlich so), dass er hinter das letzte Element zeigt*.
-
Nach (*(m_departments.end()-1)).m_number + 1; bekomme ich folgendes zurück:
E2094 'operator-' ist im Typ '_List_iterator<Department,_Nonconst_traits<Department> >' für Argumente des Typs 'int' nicht implementiertGibt es eine andere Möglichkeit um auf das letzte Element der Liste zuzugreifen ?
-
1. m_departments.back()
2. Wozu list?
3. Warum UN?
-
Sicher gibt es noch andere Möglichkeiten.
Mit "m_departments.back()" funktioniert es
und ich bedanke mich für die Hilfe