#include <iostream>
#include <vector>
using namespace std;
int
main ()
{
//Method 1: using auto
vector < int >v1 = { 1, 2, 3, 4, 5 };
cout << "auto i: ";
for (auto i:v1) {
++i;
cout << i << " ";
}
cout << endl << "auto i: vector modification is done" << endl;
//Method 2: Changes will not reflect
for (auto i:v1) {
cout << i << " ";
}
cout << endl;
vector < int >v2 = { 1, 2, 3, 4, 5 };
cout << "auto& i: ";
for (auto & i:v2) {
++i;
cout << i << " ";
}
cout << endl << "auto& i: vector modification" << endl;
for (auto i:v2) {
cout << i << " ";
}
cout << endl;
vector < int >v3 = { 1, 2, 3, 4, 5 };
cout << "auto iterator: ";
for (auto it = v3.begin (); it != v3.end (); ++it) {
++(*it);
cout << *it << " ";
}
cout << endl << "vector for loop: Modification" << endl;
for (auto i:v3) {
cout << i << " ";
}
cout << endl;
vector < int >v4 = { 1, 2, 3, 4, 5 };
cout << "Tradition for loop: ";
for (int i = 0; i < v4.size (); ++i) {
++v4[i];
cout << v4[i] << " ";
}
cout << endl << "traditional for loop: Modification" << endl;
for (auto i:v4) {
cout << i << " ";
}
return 0;
}