Selles õpetuses tutvume näidete abil silmuste C ++ vahemiku ja selle parimate tavadega.
C ++ 11 tutvustas kaugussilmu for. Seda forsilmust kasutatakse spetsiaalselt selliste kogumite jaoks nagu massiivid ja vektorid .
Näiteks,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Siin forkordab vahemiku silmus massiivi numbrit algusest lõpuni. intMuutuja var salvestab väärtust massiivi element iga iteratsiooni.
Selle süntaks on
for (rangeDeclaration : rangeExpression) ( // code )
Ülaltoodud näites
- vahemikDeklaratsioon -
int var - vahemikExpression - arv
Silmuse vahemiku töötamine C ++ keeles
Näide 1: vahemikus massiivi abil silmus
#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; )
Väljund
1 2 3 4 5
Selles näites deklareerisime ja initsialiseerisime intmassiivi nimega numArray. Siin kasutasime fornumArray elementide printimiseks vahemikku.
- esimene iteratsioon - n võtab massiivi esimese liikme väärtuse, mis on
1 - teine iteratsioon - n võtab väärtuse
2ja seejärel prinditakse jne.
Märkus . Vahemiku vahemik kordab massiivi automaatselt selle algusest lõpuni. Me ei pea tsüklis korduste arvu määrama.
Näide 2: C ++ vahemikus vektoriga silmus
#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; )
Väljund
1 2 3 4 5
Näide 3: Kogumise deklareerimine aasas
#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; )
Väljund
1 2 3 4 5
Siin oleme deklareerinud kogu tsükli sees, st
rangeExpression = (1, 2, 3, 4, 5)
See on ka sobiv viis vahemikusilmu kasutamiseks forja see toimib samamoodi nagu tegeliku massiivi või vektori kasutamisel.
C ++ määrati parimate tavade jaoks
Eeltoodud näidetes oleme deklareerinud muutuja fortsüklis, et salvestada kogu iteratsiooni kogu element.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Siiski on parem kirjutada vahemiku põhine silmus nii:
// access memory location of elements of num for (int &var : num) ( // code )
Pange tähele, et &enne var. Siin,
int var : num- Kopeerib num iga elemendi iga iteratsiooni muutuja var. See ei ole arvuti mälu jaoks hea.int &var : num- ei kopeeri iga numbri elementi varisse. Selle asemel pääseb num-i elementidele juurde otse num-st. See on tõhusam.
Märkus . &Operaator on tuntud kui võrdlusoperaator. Lisateavet selle kohta saate C ++ osutitest.
Aadressi osutamine C ++ keeles ulatus silmuseni
Märkus. Kui me ei muuda massiivi / vektorit / kogu tsüklis, on parem kasutada constmärksõna vahemiku deklaratsioonis.
// collection is not modified in the loop for (const int &var : num) ( // code )








