Ich habe eine "Slate", die im Wesentlichen der aktuelle Bildschirm ist, in diesem Bildschirm sind Seiten, die "Elemente" bis zu 12 in Größe halten, denn das ist alles, was wird passen auf dem Bildschirm, so dass ich versucht habe, zu überprüfen, sobald es 12 Elemente erreicht, um eine neue Seite zu machen, aber der Code unten aufgeführten nur hinterlässt keine Gegenstände in beide Seite 1 oder Seite 2Löschen Sie temporäre Liste ohne zu löschen, wo ich es zuweisen
int pageItems = 0;
std::list<item*> tempList;
page* temp = new page;
for (std::list<item*>::iterator iter = items.begin(); iter != items.end(); ++iter)
{
tempList.push_back((*iter));
if (pageItems >= 13) {
page_Count++;
temp->items = tempList;
pages.push_back(temp);
tempList.clear();
temp->items.clear();
pageItems = 0;
}
pageItems++;
}
Seite ein Klasse, die std :: list enthält, aber sollte nur mit 12 umgehen, und dann wird eine neue Seite mit dem nächsten Betrag erstellt, wenn es 12 überschreitet, neue Klasse Und slate ist die Klasse, die std :: list sowie std :: list, das Element eins ist nur so, es ist einfacher, eine Klasse zu erstellen, weil ursprünglich es hat nicht Seiten hat, und jetzt ich füttere nur ‚Artikel‘ in ‚Seiten‘ je nachdem, wie viele auf die Schiefertafel gegeben
Yeah Ich lösche es, weil ich es in der nächsten Schleife verwenden möchte, und ich habe es bereits der 'pages' Liste hinzugefügt, also sollte es nicht wichtig sein (?) (nicht sicher, so funktioniert es in Java und ich bin neu in C++) – Cacoon
Es ist ein Zeiger, so dass es auf den gleichen Speicher verweist, den Sie zu Ihrer Liste hinzugefügt haben. Ich denke, was Sie tun möchten, ist stattdessen eine neue Seite zuweisen (Temp = neue Seite). Denken Sie daran, den Speicher freizugeben, den Sie später zuweisen – Henningsson