1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Information ausblenden

Floyd, Operatorüberladung >>

Dieses Thema im Forum "Programmieren" wurde erstellt von rgHorus, 30. Januar 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. rgHorus

    rgHorus Byte

    Problemstellung (es geht um das Verfahren von Floyd):

    ...
    Eine Klasse graph ist zu implementieren, die die Adjazenzmatrix am, die Matrix zm (Adjazenzmatrix
    zum Auflösen der Zwischenknoten) und die Anzahl n der Knoten als Member enthält. Der Operator
    >> ist für graph zu überladen und soll den Graphen robust in die Matrix am einlesen. Der überladene
    Operator << soll die kürzesten Entfernungen und Zwischenknoten ausgeben.
    ...

    Ich verstehe hier nicht richtig, wie ich den Operator >> überladen soll. Ich habe das Programm so angefangen, dass die Matrix am/zm ein Element von "Graph" ist. Wie soll ich jetzt den Operator überladen. Man soll ja nicht die Werte der Matrix per Eingabeaufforderung eingeben!


    So siehts bei mir aus:


    istream& operator>>(istream& is, Graph& am)
    {
    is>>am[0][0]=1;

    return is;
    };


    Noch ein kleines inhaltliches Problem: Reicht nicht eigentlich eine Matrix aus? Warum brauch ich 2?
     
  2. toriho

    toriho Byte

    Hi!!

    Nur mal kurz: Ich würde da einen ifstream, also einen Filestream verwenden. Dann mußt du dir natürlich noch ein Fileformat überlegen (z.B. ob ASCII oder binär), dann die Daten richtig einlesen (eben deinem Format entsprechend) und in deine Matrizen schreiben.
    Du könntest natürlich auch die Streambuffer-Möglichkeiten von istream verwenden.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen