For loop initial run

Need some help with C++. I’m trying to create a function where you simply add a user-specified amount of strings to a vector then simply print the strings, both using functions. So far I have



#include <iostream>

#include <vector>

using namespace std;

void print(vector <string> );

void insert(vector <string>);



int main() {



    vector <string> vec {};

    insert(vec);

    print(vec);

   

    return 0;

}



void insert(vector <string> v){

     cout << "How many elements? ";

    int elements{};

    cin >> elements;

    for(int i{0}; i <= elements; i++){

        cout << "Enter string " << i << ": ";

        string e{""};

        getline(cin, e);

        v.push_back(e);

    }

  

}

void print(vector <string> v){

    for(auto s: v)

        cout << s << " ";

}

When I call the “insert” function, the first cout line runs twice before the chance to insert a string. The console returns:

How many elements? 2

Enter string 0: Enter string 1:

Why is this? shouldn’t it ask for input before “Enter string 1”? Also, the print function to then display the added strings doesn’t seem to be working either.