C ++ Ranged for Loop (Với các ví dụ)

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 forvòng lặp tầm xa . Đây forvòng lặp được sử dụng đặc biệt với các bộ sưu tập như mảngvectơ .

Ví dụ,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Ở đây, forvòng lặp tầm xa lặp lại số mảng từ đầu đến cuối. Các intvar 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
Hoạt động của vòng lặp for ranged trong C ++

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 intmảng có tên là numArray. Ở đây, chúng tôi đã sử dụng forvò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 2và 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 forvò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 forvò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 ++.

Hoạt động của trỏ địa chỉ trong C ++ dao động trong vòng lặp for

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 consttừ khóa trong khai báo phạm vi.

 // collection is not modified in the loop for (const int &var : num) ( // code )

thú vị bài viết...