I will also point out that instead of

vector<FunctionWithArrayAsArgument>::iterator itr=Vector_Of_Functions.begin()

you can write

auto itr=Vector_Of_Functions.begin()

Also, instead of...