Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các vòng lặp thay đổi trong C ++ và các phương pháp hay nhất của nó với sự trợ giúp của các ví dụ.
C ++ 11 đã giới thiệu for
vòng lặp tầm xa . Đây for
vòng lặp được sử dụng đặc biệt với các bộ sưu tập như mảng và vectơ .
Ví dụ,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Ở đây, for
vòng lặp tầm xa lặp lại số mảng từ đầu đến cuối. Các int
var biến lưu trữ các giá trị của phần tử mảng trong mỗi lần lặp.
Cú pháp của nó là,
for (rangeDeclaration : rangeExpression) ( // code )
Trong ví dụ trên,
- dải ô -
int var
- rangeExpression - num

Ví dụ 1: Phạm vi cho Vòng lặp Sử dụng Mảng
#include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )
Đầu ra
1 2 3 4 5
Trong ví dụ này, chúng tôi đã khai báo và khởi tạo một int
mảng có tên là numArray. Ở đây, chúng tôi đã sử dụng for
vòng lặp phạm vi để in ra các phần tử của numArray.
- lần lặp đầu tiên - n nhận giá trị của thành viên đầu tiên của mảng, là
1
- lần lặp thứ hai - n nhận giá trị của
2
và sau đó được in ra, v.v.
Lưu ý: Vòng lặp for ranged tự động lặp lại mảng từ đầu đến cuối của nó. Chúng ta không cần chỉ định số lần lặp trong vòng lặp.
Ví dụ 2: C ++ Ranged for Loop Sử dụng Vector
#include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )
Đầu ra
1 2 3 4 5
Ví dụ 3: Khai báo Bộ sưu tập bên trong Vòng lặp
#include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )
Đầu ra
1 2 3 4 5
Ở đây, chúng tôi đã khai báo tập hợp trong chính vòng lặp, tức là
rangeExpression = (1, 2, 3, 4, 5)
Đây cũng là một cách hợp lệ để sử dụng for
vòng lặp phạm vi và nó hoạt động theo cách tương tự như khi chúng ta sử dụng một mảng hoặc vectơ thực tế.
Các phương pháp hay nhất về lặp lại C ++
Trong các ví dụ trên, chúng ta đã khai báo một biến trong for
vòng lặp để lưu trữ từng phần tử của tập hợp trong mỗi lần lặp.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Tuy nhiên, tốt hơn nên viết vòng lặp for ranged dựa trên như thế này:
// access memory location of elements of num for (int &var : num) ( // code )
Chú ý việc sử dụng &
before var. Đây,
int var : num
- Sao chép từng phần tử của num vào biến var trong mỗi lần lặp. Điều này không tốt cho bộ nhớ máy tính.int &var : num
- Không sao chép từng phần tử của num sang var. Thay vào đó, truy cập trực tiếp các phần tử của num từ chính num. Điều này hiệu quả hơn.
Lưu ý: Các &
toán tử được gọi là các nhà điều hành tài liệu tham khảo. Chúng ta sẽ tìm hiểu thêm về nó trong con trỏ C ++.

Lưu ý: Nếu chúng ta không sửa đổi mảng / vectơ / bộ sưu tập trong vòng lặp, tốt hơn nên sử dụng const
từ khóa trong khai báo phạm vi.
// collection is not modified in the loop for (const int &var : num) ( // code )