Umsetzungsfrage



  • Hi!

    Welche Möglichkeit würdet Ihr wählen:

    Ich wollte eigentlich eine Map von einer Liste implementieren, in der unterschiedliche Werte zu bestimmten Zeitpunkten enthalten sind.

    Eine Map von Sendern, die wiederum eine Liste von verschiedenen Werten enthält. Ich müsste danach die einzelnen Werte, angepasst auf die zeitlichen Abfolge für alle Sender zusammenaddieren. Das Problem ist, daß ich mir die einzelnen Zeitpunkte mit den entsprechenden Werten(die Zeitpunkte können für alle Sender unterschiedlich sein) irgendwie sichern muss!?

    Hätten Ihr irgendwie eine gute Idee, wie ich die Implementierung am einfachsten und effizientesten umsetzen könnte?

    Vielen Dank!

    MfG Tronador



  • Hallo Tronador,

    Deine Problembeschreibung erscheint mir etwas unklar. Ich fasse mal zusammen, was ich meine verstanden zu haben.
    Es gibt:
    - Sender
    - Zeitpunkte
    - Werte
    alles andere erscheint mir Vorwegnahme der Implementierung.

    Zu jedem Zeitpunkt gehört genau ein Wert. Der Wert hat nur im Kontext mit dem Zeitpunkt eine Bedeutung.
    Zu jedem Sender gehören mehrer Zeitpunkte mit ihren jeweiligen Werten.
    Ein Zeitpunkt kann genau einem Sender zugeordnet werden. (ist geraten!)

    Wie kommen die Sender zu einem Zeitpunkt-Wert-Paar?
    Wie wird ein Sender unter allen Sendern ausgefällt, bzw. identifiziert?
    Was bedeutet:

    Tronador schrieb:

    angepasst auf die zeitlichen Abfolge für alle Sender zusammenaddieren

    ?

    so als erster Schuss riecht das nach

    class Sender
    {
    // ...
    private:
        std::list< std::pair< Zeitpunkt, Wert > > m_werte;
    };
    
    std::set< Sender > sender;
    

    Gruß
    Werner



  • Werner Salomon schrieb:

    Hallo Tronador,

    Deine Problembeschreibung erscheint mir etwas unklar. Ich fasse mal zusammen, was ich meine verstanden zu haben.
    Es gibt:
    - Sender
    - Zeitpunkte
    - Werte
    alles andere erscheint mir Vorwegnahme der Implementierung.

    Zu jedem Zeitpunkt gehört genau ein Wert. Der Wert hat nur im Kontext mit dem Zeitpunkt eine Bedeutung.
    Zu jedem Sender gehören mehrer Zeitpunkte mit ihren jeweiligen Werten.
    Ein Zeitpunkt kann genau einem Sender zugeordnet werden. (ist geraten!)

    Wie kommen die Sender zu einem Zeitpunkt-Wert-Paar?
    Wie wird ein Sender unter allen Sendern ausgefällt, bzw. identifiziert?
    Was bedeutet:

    Tronador schrieb:

    angepasst auf die zeitlichen Abfolge für alle Sender zusammenaddieren

    ?

    so als erster Schuss riecht das nach

    class Sender
    {
    // ...
    private:
        std::list< std::pair< Zeitpunkt, Wert > > m_werte;
    };
    
    std::set< Sender > sender;
    

    Gruß
    Werner

    Hi Werner!

    Vielen Dank ersteinmal für Deine Antwort! Der Wert und die Zeitdauer der Übertragung werden bisher in einer Liste geführt, nur ist eben das Problem, daß ein Empänger mehrere überlappende Nachrichten von unterschiedlichen Sendern erhalten kann und demenstprechend die Werte(Geräuschpegel) zusammenaddiert werden müssen.

    Man muss es sich so vorstellen, dass der Geräuschpegel(der Wert um den es geht) durch verschiedene äussere Einwirkungen variiert. Also es gibt verschiedene Phasen in der Übertragung mit unterschiedlichen Werten. Weitere Sender können gleichzeitig oder versetzt Nachrichten senden, wobei nun die Werte zusammenaddiert werden müssen. Irgendwie muss ich nur sicherstellen, daß alle Zeitpunkte der Veränderungen für jede Nachricht gespeichert wird, um dann jedes Mal die Addition neu durchzuführen.

    Vielen Dank

    MfG Tronador



  • Hi!

    Mir ist ausserdem noch nicht ganz klar, wann man set und wann man den Container map benutzen sollte!?

    MfG Tronador



  • Tronador schrieb:

    Hi!

    Mir ist ausserdem noch nicht ganz klar, wann man set und wann man den Container map benutzen sollte!?

    MfG Tronador

    Hi,

    für mich ist das Entscheidungskriterium, ob man Zwei Typen miteinander verknüpfen (-> map) oder einen ablegen will (-> set).
    Natürlich könnte man auch statt einer map auch ein set eines zusammengesetzten Typen nehmen, aber das macht nichts einfacher und viele schwieriger.

    Gruß,

    Simon2.


Anmelden zum Antworten