# How to iterate through a Vector without using Iterators in C++

The iterator isn’t the best way to repeat through any STL compartment. There exists a superior and proficient method for emphasizing through vector without utilizing iterators. It tends to be iterated utilizing the qualities put away in any holder. The following is the sentence structure for something very similar for vectors:

Syntax:

for(auto itr : vector_name)

Clarification: Here itr is the worth put away in vector which is utilized to cross vectors. The following is the program to delineate something similar:

 // C++ program to illustrate the above // topic #include  using namespace std;   // Driver Code int main() {       // Declare the vector     vector<int> arr = { 1, 2, 3, 4 };       // Traversing the vector using     // values directly     for (auto& it : arr) {           // Print the values         cout << it << ' ';     }     return 0; }
Output:

1 2 3 4

Refreshing qualities in vector: For refreshing qualities in a vector without utilizing iterators cross the qualities put away in vector utilizing reference and refreshed the worth. The following is the sentence structure for something similar:

Syntax:

for(auto &itr : vector_name)

Clarification: Here itr is a location to the worth put away in vector which is utilized to cross vectors. The following is the program to outline something very similar:

 // C++ program to illustrate the updation // in vector without using iterator #include  using namespace std;   // Function to update the value in vector void updateVector(vector<int> arr) {       cout << "Vector Before Update: ";     for (auto& it : arr) {         cout << it << ' ';     }       // Traverse using the reference to value     // and multiply each value by 2     for (auto& it : arr) {         it *= 2;     }       cout << "\nVector After Update: ";     // Print vector elements     for (auto& it : arr) {         cout << it << ' ';     } }   // Driver Code int main() {       // Declare the vector     vector<int> arr = { 1, 2, 3, 4 };       // Function Call     updateVector(arr);     return 0; }
Output:

Vector Before Update: 1 2 3 4
Vector After Update: 2 4 6 8

### Benefits:

• Basic and simple to compose code.
• Preferred and productive over utilizing iterators strategy.

### Hindrances:

• It repeats just in forward course.
• Keeps no counter i.e., We can’t track down the file of any component with this crossing. For counting the component, the counter need to taken expressly.
• We can likewise repeat involving similar crossing in various Containers in C++. The following are the representation for the equivalent:

Map:

 // C++ program to illustrate the iteration // in Map without using iterator #include  using namespace std;   // Driver Code int main() {       // Declare the map     map<int, int> Mp;       // Inserting values in Map     Mp[1] = 1;     Mp[2] = 2;     Mp[3] = 3;       // Iterate using value in Map     for (auto it : Mp) {           // Print the elements         cout << it.first << ' '              << it.second << endl;     }       return 0; }
Output:

1 1
2 2
3 3


Map of Vectors:

 // C++ program to illustrate the iteration // in Map of vectors without using iterator #include  using namespace std;   // Driver Code int main() {       // Declare the map of vectors     map<int, vector<int> > Mp;       // Temporary vector     vector<int> temp = { 1, 2, 3 };       // Inserting values in Map     Mp[1] = temp;       temp = { 2, 3, 8, 9 };     Mp[2] = temp;       temp = { 10, -2 };     Mp[3] = temp;       // Iterate using value in Map of vectors     for (auto it : Mp) {           // Print the elements         cout << it.first << " -> ";           // Traverse each vector map         // with it.first and print the         // elements         for (auto jt : it.second) {             cout << jt << ' ';         }           cout << endl;     }       return 0; }
Output:

1 -> 1 2 3
2 -> 2 3 8 9
3 -> 10 -2


Set:

 // C++ program to illustrate the iteration // in set without using iterator #include  using namespace std;   // Driver Code int main() {       // Declare the set     set<int> S;       // Inserting values in set     S.insert(3);     S.insert(-1);     S.insert(3);     S.insert(4);       // Iterate using value in set     for (auto it : S) {           // Print the elements         cout << it << ' ';     }     return 0; }
Output:

-1 3 4


Deque:

 // C++ program to illustrate the iteration // in deque without using iterator #include  using namespace std;   // Driver Code int main() {       // Declare the deque     deque<int> dq;       // Inserting values in deque     dq.push_front(1);     dq.push_front(2);     dq.push_front(3);       dq.push_back(4);     dq.push_back(5);     // Iterate using value in set     for (auto it : dq) {           // Print the elements         cout << it << ' ';     }     return 0; }
Output:

3 2 1 4 5

Also Read: How to Learn Programming?