C++/AlgoAndADT: 3-way quicksort