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

    Registriert seit:
    3. Oktober 2002
    Beiträge:
    36
    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

    Registriert seit:
    25. Januar 2006
    Beiträge:
    15
    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