Inteligentne czy "zwykłe" wskaźniki?

0
  class Club
  {
  public:
    Club();
    std::string Name;
    int16_t Reputation;
    std::vector<std::shared_ptr<Player>> Squad;
    // lub
    // std::vector<Player*> Squad;
  };

  class Player
  {
  public:
    Player();
    std::string FirstName;
    std::string SecondName;
    int16_t Value;
    std::shared_ptr<Club> Team;
    // lub
    //Club* Team;
  };

  class DB
  {
  public:
    DB();
    std::vector<std::shared_ptr<Club>> Clubs;
    std::vector<std::shared_ptr<Player>> Players;
    // lub
    //std::vector<Player*> Players;
    //std::vector<Club*> Clubs;
    // albo 
    //std::vector<Player> Players;
    //std::vector<Club> Clubs;
  };

Mam następujące pytanie czy w powyższym przykładzie można w użyć inteligentnych wskaźników w ten sposób?
Czy może lepiej zastosować zwykłe wskaźniki czy inne rozwiązanie (np. referencje) ?

4

Za mało kontekstu. Bardzo polecam tę prezentację jako ogólny guideline:

1 użytkowników online, w tym zalogowanych: 0, gości: 1