Sortieren Sie Die Objekte Der Klasse Gespeichert, In Deque

Ich versuche zu speichern, E-Mail-Adressen in eine Datei geschrieben und Sortieren Sie Sie, indem Sie zuvor in der Datei.

Ich bin die Speicherung der E-Mail-Adressen und die Anzahl der Treffer in einer Klasse namens emailAddress.

Ich bin die Verwaltung die Mitglieder dieser Klasse in eine Deque in einer anderen Klasse genannt AddressManager.

Die Sortieren-Funktion, die ich versuche zu verwenden ist die Art aus der algorithmen-Bibliothek. Wie diese.

[emailAddress.released() returns the number of hits. addressQueue is my emailAddress Deque]

bool AddressManager::swapTest(const emailAddress& address1, const emailAddress& address2)
{
    cout<<"Comparing: "<<address1.released()<<" to "<<address2.released()<<endl;
    return address1.released()>address2.released();
}
void AddressManager::sortAddresses()
{

    sort(addressQueue.begin(),addressQueue.end(),
        swapTest);
}

Wenn ich compile bekomme ich diesen Fehler:

1>c:\workspace\addressmanager.cpp(36): error C3867: 'AddressManager::swapTest': function call missing argument list; use '&AddressManager::swapTest' to create a pointer to member
1>c:\workspace\addressmanager.cpp(36): error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm(3639) : see declaration of 'std::sort'

Kann ich pass swapTest zu Sortieren, oder muss es definiert werden, die außerhalb der AddressManager irgendwie?
Oder könnte jemand empfehlen, einen Weg zur Umsetzung meiner eigenen Art in AddressManager und die Bibliothek nicht nutzen version überhaupt?

Dank,
ANkh

  • Neuere C++ - Compiler benötigen Funktionszeiger übergeben werden, mit Ihrem vollen Namen, z.B. &AddressManager::swapTest, anstatt nur swapTest. Auch nicht Sortieren use-operator < auf die Art, sondern als eine Art Funktion? Sie können besser mit qsort wenn Sie möchten, C-Format Sortieren, anstatt über operator-überladung. EDIT: es ist ein 3-param-version der Art, mit einem Funktor. Siehe: codeproject.com/KB/stl/stdsort.aspx
InformationsquelleAutor Ankhwatcher | 2011-12-19
Schreibe einen Kommentar