When we are passing a vector into a function why can't we do it like an array?
For example:
#include<bits/stdc++.h> 
using namespace std;
void func(vector<int> vect)
{
    vect.push_back(30);
}
int main()
{
    vector<int> vect;
    vect.push_back(10);
    vect.push_back(20);
    func(vect);
    for (int i = 0; i<vect.size(); i++)
        cout << vect[i] << " ";
    return 0;
}
In this example, it works fine. But if I do it like this why doesn't it work like an array?
#include<bits/stdc++.h> 
using namespace std;
void func(vector<int> *vect)
{
    vect.push_back(30);
}
int main()
{
    vector<int> vect;
    vect.push_back(10);
    vect.push_back(20);
    func(&vect[0]);
    for (int i = 0; i<vect.size(); i++)
        cout << vect[i] << " ";
    return 0;
}
Just like an array, why is this not possible?
 
     
     
    