大学で下記のようなSTLアルゴリズムの課題が出たのですが、全然わからないです

Hogeというstructがあったときに、
class HogeCollection {
public:
  void display(ostream& os) const;
  friend ostream& operator << (ostream& os, const Hoge& hoge);
private:
  vector<Hoge> m_hoges;
};

display関数でm_hogesのすべてのHogeに対して os <<を呼び出し出力させなさい。
ただしforやwhileなどの手動ループを使用しないこと。