Dunque, osservando il tuo sorgente noto che allochi sull'heap N (N è l'argomento che passi al costruttore della classe Grafo) puntatori a bool, quindi, per ognuno dei puntatori a bool, N bool. che alla fine inizializzi a false. Alla fine hai allocato, insomma, N*N bool (oltre a N puntatori a bool). Se N vale 100000 e la sizeof(bool) è uno, hai comunque allocato per i tuoi boolean 100000000 (centomilioni) di bytes sullo heap. Non ho fatto una prova, ma non mi sembra strano che il sistema swappi non poco, non ti pare?
Saluti.
Marco