qBinarySort

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
nelo
Beiträge: 21
Registriert: 29. Mai 2014 17:40

qBinarySort

Beitrag von nelo »

Hallo,

ich habe folgendes Problem.
Ich möchte mittels der QT funktion QBinaryFind den gesuchten Wert finden.
Ich habe ein selbsdefiniertes strukt geschrieben das ein Multideminsionales Array darstellung soll.

Code: Alles auswählen

typedef struct
    {
        QString date;
        double consum;
    }strucDOT;

    typedef struct
    {
        QList<strucDOT*> dotList;
        double offset;
    }strucGraph;
    QList<strucGraph*>     myGraph;
Jedoch kommt beim asuführen folgender Fehler
"invalid conversion from 'unsigned int' to 'QVector <double>::iterator {aka double*}
wo liegt hier der Fehler? Kann ich überhaubt binaryFind in einem eigenen Struct anwenden?

Code: Alles auswählen

QVector<double>::iterator i = qBinaryFind(QDateTime::fromString(myGraph.at(0)->dotList.at(0)->date).toTime_()),               QDateTime::fromString(myGraph.at(0)->dotList.at(myGraph.at(0)->dotList.count()-1)->date).toTime_t(), 
64800);
Gruß Nelo
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: qBinarySort

Beitrag von Christian81 »

Zuerst ein paar Dinge die nichts mit dem Compiler-Problem zu tun haben
1. ist die Liste auch wirklich sortiert
2. Doku zu qBinaryFind: Use std::binary_search or std::lower_bound instead.

Und nun zum Problem: qBinaryFind möchte einen Iterator auf begin und end, nicht die Werte vom ersten und letzten Element.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nelo
Beiträge: 21
Registriert: 29. Mai 2014 17:40

Re: qBinarySort

Beitrag von nelo »

Hallo Christian,

das Datum ist schon Sortiert. Vom kleinsten zum größten.
Zu dem Problem mit begin und end. Hier frage ich mich ob man dies überhaupt im strukt richtig abfragen kann?
Auserdem sagt man doch normalerweise mit begin das erste und mit end das letzte element an?

Gruß Nelo
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: qBinarySort

Beitrag von Christian81 »

Es ist nunmal nötig den begin() und end() - Iterator anzugeben anstatt das erste und letzte Element ... -> C++ Grundlagen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten