Zum Inhalt springen

C++ - In Maps ein Element hinten einfügen


Artery

Empfohlene Beiträge

Moin Artery,

Wie kann ich nun realisieren, dass ich ein Element in das Ende einer Map einfügen kann?

Ähm... der Sinn einer Map ist Dir schon klar, oder? Da gibt es kein "hinten" oder "vorne". Sie selber übernimmt für Dich die Sortierung, damit sie immer die ideallen Zugriff hat ohne ewig zusuchen. ;)

Edith meint: Nimm einen Vector wenn Du "hinten" und "vorne" brauchst. :)

Bearbeitet von Hexagon
Link zu diesem Kommentar
Auf anderen Seiten teilen

Als ich heute morgen nochmal herumprobiert habe, ist mir dann leider auch aufgefallen, dass ja alles schon sortiert wird :D Das blöde .insert hatte mich dann verwirrt :D

Das ist jetzt nun leider verdammt schlecht :(, weil auf Liste umsteigen könnte im jetzigen Stand ganz schön haarig werden, **** =( :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Artery,

Ähm... der Sinn einer Map ist Dir schon klar, oder? Da gibt es kein "hinten" oder "vorne". Sie selber übernimmt für Dich die Sortierung, damit sie immer die ideallen Zugriff hat ohne ewig zusuchen. ;)

Edith meint: Nimm einen Vector wenn Du "hinten" und "vorne" brauchst. :)

Ein Vector wäre hier wahrscheinlich völlig deplaziert... würdest du wissen wie ein vector funktioniert dann würdest du mir zustimmen wenn ich sage vorne einfügen ist der worse-case..

da er den gesamten vector um ein template des inhalts verschiebt.. ggf. neuen speicher allokiert und das halt sehr sehr langsam ist wenn er alles umkopieren muss etc..

Was ich dir raten würde wäre eine dequeue empfehlen oder wenn du immer nur auf das letzte eingefügte Element zuerst zugreifen willst einen stack ;)

Als ich heute morgen nochmal herumprobiert habe, ist mir dann leider auch aufgefallen, dass ja alles schon sortiert wird :D Das blöde .insert hatte mich dann verwirrt :D

Das ist jetzt nun leider verdammt schlecht :(, weil auf Liste umsteigen könnte im jetzigen Stand ganz schön haarig werden, **** =( :D

schreib dir eine methode in der du auf deine liste zugreifen kannst wie auf eine map :) ist nicht so schwer

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Vector wäre hier wahrscheinlich völlig deplaziert... würdest du wissen wie ein vector funktioniert dann würdest du mir zustimmen wenn ich sage vorne einfügen ist der worse-case..

da er den gesamten vector um ein template des inhalts verschiebt.. ggf. neuen speicher allokiert und das halt sehr sehr langsam ist wenn er alles umkopieren muss etc..

Was ich dir raten würde wäre eine dequeue empfehlen oder wenn du immer nur auf das letzte eingefügte Element zuerst zugreifen willst einen stack ;)

Interessantes Paper zu diesem Thema, denn dein Tipp sollte kritisch hinterfragt werden. Die Indirektionen, durch verkettetet Elemente, können dich schnell viel mehr Zeit kosten, als, vor allem wenn die Daten noch im Cache sind.

schreib dir eine methode in der du auf deine liste zugreifen kannst wie auf eine map :) ist nicht so schwer

Mit einer eigenen Hashing Funktion, gibt bestimmt leichtere Aufgaben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...