I'm trying to overload the << operator to print a vector that contains elements of type Position (vector). I managed to overload the << operator for type Position, but I can't figure out how to do it for vector. Can you help?
//position.h
#ifndef POSITION_H    
#define POSITION_H
#include <iostream>    // using IO functions
using namespace std;
class Position {
private:
    int row;
    int column;
public:
    friend ostream& operator<<(ostream& os, const Position& P);
    friend ostream& operator<<(ostream& os, const vector<Position>& VP);
};
#endif
//position.cpp
#include"Position.h"
#include <iostream>    // using IO functions
#include<vector>
ostream& operator<<(ostream& os, const Position& P)
{
    os << '(' << P.row << ',' << P.column << ')' << endl;
    return os;
}
    
ostream& operator<<(ostream& os, const vector<Position>& VP)
{
    Position placeholder;
    for (int i = 0; i != VP.size(); i++)
    {
        placeholder = VP.at(i);
        cout << placeholder << endl;
    }
    return os;
}
int main() 
{
    Position C1(2, 1);
    Position C2(3, 1);
    Position C3(4, 1);
    vector<Position> cans;
    cans.push_back(C1);
    cans.push_back(C2);
    cans.push_back(C3);
    cout << cans;
    system("pause");
}
 
    