Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
const _F &__cdecl std::use_facet(const class std::locale &,const _F *,bool)' : expects 3 arguments - 1 provided
Zitat
Falls VC++6 muss ich mal in den tiefen meiner HDD gucken
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
namespace IgnoreCase { struct CharLess_t : std::binary_function<char, char, bool> { bool operator() (char ch1, char ch2) const { return tolower(static_cast<unsigned char>(ch1)) < tolower(static_cast<unsigned char>(ch2)); } }; struct CharEq_t : std::binary_function<char, char, bool> { bool operator() (char ch1, char ch2) const { return tolower(static_cast<unsigned char>(ch1)) == tolower(static_cast<unsigned char>(ch2)); } }; // Liefert true, falls Str1 == Str2 struct NoCaseEqual_t : std::binary_function<std::string, std::string, bool> { bool operator () ( const std::string& Str1, const std::string& Str2) const { if (Str1.length() != Str2.length()) return false; return std::equal(Str1.begin(), Str1.end(), Str2.begin(), CharEq_t()); } }; bool NoCaseEqual(const std::string& Str1, const std::string& Str2) { return NoCaseEqual_t()(Str1, Str2); } // Liefert true, falls Str1 lexikographisch kleiner als Str2 ist. struct NoCaseLess_t : std::binary_function<std::string, std::string, bool> { bool operator () (const std::string& Str1, const std::string& Str2) const { return std::lexicographical_compare( Str1.begin(), Str1.end(), Str2.begin(), Str2.end(), CharLess_t()); } }; //... } int main() { using namespace IgnoreCase; set<string, NoCaseLess_t> MySet; string Str1("Foo"); string Str2("FOO"); MySet.insert(Str1); if (!MySet.insert(Str2).second) { cout << "Es kann nur einen Foo geben :-)" << endl; } if (NoCaseEqual(Str1, Str2)) { cout << Str1 << " und " << Str2 << " sind bis auf Groß-/Kleinschreibung gleich"; } } |
Werbeanzeige