I\'m wondering why the STL doesn\'t overload their algorithm functions such that I can call them by simply providing a container and not taking the more verbose way to pass
There is a Range Operators library with intention to fix that. Verbosity was cut several times over.
Your example would look something like this:
auto newVector = myVector * doSomething;
Yes, doSomething - is without parenthesis.
Familiar idiom from shell (with std algorithm):
auto t = vector{3,2,1,4} | sort | unique;