Come eliminare un corrotto heap C ++

April 8

Un mucchio è una struttura ad albero che è conforme a una speciale regola mucchio. La regola mucchio stabilisce che ciascun nodo della struttura ha un valore inferiore al suo nodo genitore. I nodi sono posizioni nella struttura che contengono i dati. Un mucchio memorizza il nodo più grande valore nel nodo radice dell'albero, mentre i nodi più basso valore risiedono sul livello più basso della struttura. Un mucchio può essere danneggiato quando un altro processo modifica i dati in modo che non sia più aderisce alla regola mucchio. In C ++, è possibile creare e distruggere i cumuli Funzioni di base.

istruzione

1 Caricare il C ++ IDE facendo clic sulla sua icona del programma. Quando si apre, selezionare "File / Nuovo / Progetto" e scegliere "Progetto ++ C" per creare un nuovo progetto C ++. Un file di codice sorgente vuoto appare nella parte editor di testo dell'IDE.

2 Importare il "vettore" e librerie "algoritmo" scrivendo il seguente nella parte superiore del file di codice sorgente:

import <vettore> Importa <algorithm>

3 Dichiarare una funzione principale. Le funzioni principali sono i punti di ingresso del programma - in cui il programma inizia l'esecuzione. Le parentesi graffe che seguono una funzione principale formano un blocco di codice: essi racchiudono tutto il codice sorgente per la funzione principale. Scrivi la dichiarazione di funzione principale e blocco di codice come questo:

int main ()
{}

4 Scrivere il codice sorgente trovata nelle seguenti fasi all'interno delle parentesi graffe della funzione principale.

5 Creare un contenitore di dati vettoriali. I vettori sono contenitori sequenziali che può ridimensionare automaticamente se stessi quando i dati si aggiunge a loro. Per creare un nuovo vettore, scrivere la seguente dichiarazione:

vector <int> v ();

6 Aggiungere i dati al vettore con la funzione "push_back". Ad esempio, per aggiungere i numeri da 1 a 4 per il vettore, scrivere le seguenti righe di codice:

v.push_back (1);
v.push_back (2);
v.push_back (3);
v.push_back (4);

7 Riorganizzare il vettore in modo da formare un mucchio. Un mucchio è una struttura ad albero in cui i "figli" di un nodo sono più bassi in termini di valore; Pertanto, il nodo superiore di un mucchio è il nodo con il più alto valore numerico - 4, in questo esempio. È possibile utilizzare il comando make_heap come questo, passando all'inizio e alla fine del vettore per includere tutti i suoi elementi:

make_heap (v.begin (), v.end ());

8 Rimuovere tutti gli elementi da un mucchio se si sospetta che è diventato corrotto. È possibile farlo utilizzando la funzione "pop_heap" come questo:

pop_heap (v.begin (), v.end ());