From the beginning of Sean Parent’s great C++ talk, he represented two std algorithms people may not be familiar of. It’s ‘std::stable_partition’ and ‘std::rotate’.
I made a small demo application shows how the two algorithms works. It’s Qt5 based application so that you can freely compile and run from Windows, mac or Linux. Grab the code here: https://github.com/heejune/algorithm-workshop