Ich schreibe z.Z. an einem Objekt, das es ermöglichen soll, Ini Dateien zu lesen und zu schreiben. (Portabel für alle Systeme die STL zulassen). Ich benötige für die Sektionen die Möglichkeit test von Test zu unterscheiden. Die map der STL erlaubt es eine eigene Funktion einzubinden. Es wird so ermöglicht einfluß auf die Entscheidung zu nehmen wann ein Key doppelt ist.

Das ganze Problem habe ich mit einem Funktionsobjekt umgangen. Ich habe es nicht so sonderlich getestet - die Anwendung erfolgt auch eigene Gefahr :)

Syntax: NoCase_Compare Öffentliche Schnitstelle: bool operator() (const T & s1,const T & s2) const { return lexicographical_compare(s1.begin(),s1.end(),s2.begin(),s2.end(),nocase_compare); } Funktion: Man kann damit ein Objekt erzeugen, welches sich wie eine Funktion verhält. Note: Datentyp1 und Datentyp2 müssen zusammenpassen und Datentyp2 muß sich mit toupper behandeln lassen!!! Beispiel: #include #include #include #include int main() { typedef map strmap; typedef map,char> > nocase_strmap; strmap temp; nocase_strmap temp2; strmap::iterator iP; temp.insert(make_pair("Arbeiten","1")); // Fügt ersten Objekt ein temp.insert(make_pair("Deutschland","2")); // Fügt zweites Objekt ein temp.insert(make_pair("deutsch","3")); // Fügt zweites Objekt ein for(iP=temp.begin();iP!=temp.end();iP++) { cout<first<second<first<second<

nocase_compare.hpp (Zum Download Schift-Taste gedrückt halten)