Mi multispisok
Már nézte meg ezt a képet, és próbálja megérteni, mi az multispisok, de még mindig nem értem, hogyan valósítható meg.
Itt vannak a kísérletek végrehajtására multispisok.
Kérjük példát multispiska + például Betételemek.
A legegyszerűbb módja, hogy végre ezt a C ++ - kezelhető shared_ptr adattárolásra A, B, C, D (shared_ptr - ez egy mutató referencia számlálás), és köti őket a szokásos lista:
Ebben az esetben minden erőforrás helyesen szabadul fel, amikor a lista törlésre kerül, és a lista bármilyen szám lehet (általában akkor megépíteni a grafikont).
De ez a memória az adatok is dinamikusan osztja, és ugyanabban az időben dinamikusan allokált memóriát minden egyes csomóponthoz. A referencia száma is létrehozhatók a kupac, ha nem használja make_shared.
Meg lehet próbálni, hogy egyszerűsítse referencia számlálás (sőt, egészen a logikai zászló -, hogy a csomópont egy eleme két lista, vagy csak egy), de a kérdés az, hogyan kell törölni csomópontokat, hogy ne távolítsa el kétszer ugyanazt, és hogyan kell hozzáadni egy csomópont mindkét lista.
Kaptam egy listát (c ++ 14):
A csomópontok adunk a lista elejére, mert ő egyirányú, nem hajtották végre egy betétet tetszőleges helyen és eltávolítására csomópont (eltávolítására van szükség, hogy hívja next1.release () és next2.release ()., ami visszaállítja a mutató, de nem távolítja el a tárgyat, de először meg kell találni az előző elemek mindkét listában)
EDIT: eltávolítása a listából eredetileg történt baj, úgy tűnik. Meg kell most működik megfelelően.