Posts

Showing posts from March, 2013

C++: Why can't I sort like a normal human being

Before I begin, C++ is awesome. It's exactly the right kind of balance between low and high level languages. When you need C++, you need C++. But it comes with it's own sets of problems. The Standard Template Library (STL) shipped with C++ is quite great, but at the same time it's excruciating verbose and is very counter intuitive. For instance, std::sort sorts C++ the elements in a container in place. Sounds good enough. Now you would expect to sort like this:   vector<int> a;   a.push_back(1);   a.push_back(2);   std::sort(a); But, NO. std::sort would only sort over a range of elements over a container, so you must write:   std::sort(a.begin(), a.end()); This really irritates me. std::sort(a) would have been brilliant, easy to use, and intuitive. I tried to pull up a simple overload and worked like a charm:   template   void sort(T& t)   {       return std::sort(t.begin(), t.end());   } Its one of the things that bug me as a C++ d