#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <istream>
#include <algorithm>

struct Player 
{
  int playerID;
  std::string name;
  friend std::istream& operator >>(std::istream& is, Player& p);
};

std::istream& operator >>(std::istream& is, Player& p)
{
   is >> p.playerID;
   std::getline(is, p.name);
   return is;
}

typedef std::vector<Player> PlayerVector;
PlayerVector fillPlayers();

int main() 
{
   PlayerVector myPlayerPointer = fillPlayers();
}

PlayerVector fillPlayers() 
{
    PlayerVector v;
    std::ifstream file1("Players.txt");  
    std::copy(std::istream_iterator<Player>(file1), 
              std::istream_iterator<Player>(), std::back_inserter(v));
    for (auto& p : v)
       std::cout << "PlayerID = " << p.playerID << "  Name is " << p.name << "\n";
    return v;
}