I've been looking around in, and coding some basic examples for std::algorithm and for some reason i never found it odd that they work like this for example:
#include <vector>
#include <algorithm>
int main(){
std::vector<int> vec;
vec.resize( 100 );
std::generate( std::begin( vec ), std::end( vec ), std::rand );
auto element = std::max_element( std::begin( vec ), std::end( vec ) );
}
How come it does not require template parameters like this:
std::generate<std::vector<int>::iterator>( ...
std::max_element<std::vector<int>::iterator>( ...