1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-02-22 09:53:00 +01:00

Merge pull request #1975 from zz3599/cpp-comparator

[cpp/en] comparator function for std containers
This commit is contained in:
ven 2015-11-08 21:52:31 +01:00
commit b8ba91bd11

View File

@ -801,6 +801,24 @@ void doSomethingWithAFile(const std::string& filename)
// all automatically destroy their contents when they fall out of scope.
// - Mutexes using lock_guard and unique_lock
// containers with object keys of non-primitive values (custom classes) require
// compare function in the object itself or as a function pointer. Primitives
// have default comparators, but you can override it.
class Foo {
public:
int j;
Foo(int a) : j(a) {}
};
struct compareFunction {
bool operator()(const Foo& a, const Foo& b) const {
return a.j < b.j;
}
};
//this isn't allowed (although it can vary depending on compiler)
//std::map<Foo, int> fooMap;
std::map<Foo, int, compareFunction> fooMap;
fooMap[Foo(1)] = 1;
fooMap.find(Foo(1)); //true
/////////////////////
// Fun stuff