#include <iostream>
#include <vector>
using namespace std;

struct MyClass {
    MyClass() {}
    MyClass(const MyClass&) {
        cout << "copy ctor invoked" << endl;
    }
};

int main(){
    vector<MyClass> objects;
    MyClass obj1;
    objects.push_back(obj1); // Vector filling
    cout << "------" << endl;
    for (auto obj : objects) // Auto loop
    {}
    cout << "------" << endl;
    for (auto& obj : objects)
    {}
}