Here is the part of codes that i cannot understand.This is a func definition.
using sPtr = std::shared_ptr < std::vector<int> >;
auto print(sPtr vec) ->std::ostream&;
void print (sPtr vec) ;
sPtr as an input and returning an
std::ostream&. The syntax being used was introduced in C++11, and it's called "trailing return type".
The declaration of
std::ostream& print(sPtr vec);