C++ - Stl-Vektor-insert-leer(NULL) Knoten
Weil mein Algorithmus habe ich eingefügt, einige leere(NULL) Knoten in meinem vector,einige Lücken, die ich meine.Wie kann ich dies durchführen?
Hatte ich versucht wie
array.push_back(NULL);
Aber es fügt Knoten mit dem Wert 0.
Edit:
Bekomme ich Werte von integer-array wie int a[10000] und fügen Sie Sie in Vektor-sirali_dizi mit verlassen einige Lücken in meiner vector.So möchte ich ein paar Lücken, aber mit dieser jede Runde, ich möchte sozusagen mein array auch.So kann ich nicht verwenden Sie -1 oder 0 etc.
- Was ist der Typ von
array
? - Es ist ein array die Werte zu Sortieren.
- Die genauen Typen sind wichtig in C++. Bitte fügen Sie die Deklaration von Arrays in Frage.
- Es klingt wie
std::vector
ist die falsche Datenstruktur für dein Szenario. - Also welche Datenstruktur ist geeignet für meine situation?
- Wir wissen immer noch nicht, warum Sie benötigen, um diese Lücken, was du meinst mit jeder Runde, etc, etc. Ohne dass der tatsächliche code oder sehr viel präziser Anweisung des eigentlichen Problems, das Sie versuchen zu lösen, das beste, was wir tun können, ist zu erraten.
- Weil ich will, um dies zu implementieren, Sortier-Algorithmus.Also habe ich verlassen einige Lücken in meinem array. en.wikipedia.org/wiki/Library_sort
- Ah gut ich habe angefangen mit das. Eigentlich an dieser Stelle möchte ich Schrott diese Frage. Stellen Sie eine neue Frage "Wie Binde ich eine Bibliothek Sortieren Algorithmus unter Verwendung von STL-Containern?" und die Frage nach dem code, den Sie haben, so weit, ein link zu dieser wiki-Artikel für die Referenz, und beschreiben Sie kurz, wo Sie steckengeblieben ist.
- ich habe diese Frage gestellt, bevor, aber Sie sagte mir, "mieten Sie sich einen coder für dieses" 🙂
- Ich würde raten, das war wahrscheinlich, weil Sie nicht Ihren code oder waren zu vage. Der Teufel steckt in den details und Programmierer oft irritiert, wenn Sie nicht genug von Ihnen haben das problem zu lösen. FWIW, die Sie wahrscheinlich verwenden wollen
std::list
...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man ein Vektor von Zeigern auf int statt int:
Und greifen Sie dann die Werte so:
Weil
NULL
ist#define
d 0.Wenn Ihr Vektor ist eine Sammlung von Zeigern, dann
NULL
(0) ist immer ein illegaler Zeiger-Wert und kann problemlos überprüft werden, ohne sich Gedanken über false-positives.Wenn Ihr array von ganzen zahlen, wobei 0 erlaubt ist, dann müssen Sie Verwendung einigen anderen sentinel-Wert zu unterscheiden.
NULL
verwendet werden soll, mit Zeiger.Es ist nicht zwingend zu verwenden
NULL
zu erkennen leeren Knoten.Sie können
NULL
wenn Sie nicht verwenden Sie den Wert '0' oder einige andere Wert, zum Beispiel -1,INF
etc zu beachten leeren Knoten.Haben Sie nicht, sagen viel über den Algorithmus. Ich denke, Boost-optional vielleicht hilfreich.
http://www.boost.org/doc/libs/1_48_0/libs/optional/doc/html/index.html
Gibt es einen extra-Stand. Können Sie ändern Ihre Art-Algorithmus, um zu überprüfen, ob(Wert) existiert.
Wenn Sie NULL-Werte müssen Sie ein Typ, der Kapseln, diese Informationen.
Hier ein Hinweis kann sein, ungültig oder gültig (mit einem Wert).
Dann können Sie dieses verwenden:
Dann ausgeführt wird, erhalten Sie: