How to detect a Christmas Tree?

I have an approach which I think is interesting and a bit different from the rest. The main difference in my approach, compared to some of the others, is in how the image segmentation step is performed–I used the DBSCAN clustering algorithm from Python’s scikit-learn; it’s optimized for finding somewhat amorphous shapes that may not … Read more

How can I iterate over an enum?

The typical way is as follows: enum Foo { One, Two, Three, Last }; for ( int fooInt = One; fooInt != Last; fooInt++ ) { Foo foo = static_cast<Foo>(fooInt); // … } Please note, the enum Last is meant to be skipped by the iteration. Utilizing this “fake” Last enum, you don’t have to … Read more

C++ Loop through Map

You can achieve this like following : map<string, int>::iterator it; for (it = symbolTable.begin(); it != symbolTable.end(); it++) { std::cout << it->first // string (key) << ‘:’ << it->second // string’s value << std::endl; } With C++11 ( and onwards ), for (auto const& x : symbolTable) { std::cout << x.first // string (key) << … Read more

Callback functions in C++

Note: Most of the answers cover function pointers which is one possibility to achieve “callback” logic in C++, but as of today not the most favourable one I think. What are callbacks(?) and why to use them(!) A callback is a callable (see further down) accepted by a class or function, used to customize the … Read more

Virtual/pure virtual explained

From Wikipedia’s Virtual function … In object-oriented programming, in languages such as C++, and Object Pascal, a virtual function or virtual method is an inheritable and overridable function or method for which dynamic dispatch is facilitated. This concept is an important part of the (runtime) polymorphism portion of object-oriented programming (OOP). In short, a virtual … Read more