У овом упутству научићемо рад са низовима. Научићемо да декларишемо, иницијализујемо и приступимо елементима низа у програмирању на Ц ++ уз помоћ примера.
У Ц ++, низ је променљива која може да ускладишти више вредности истог типа. На пример,
Претпоставимо да разред има 27 ученика, а ми морамо да сачувамо оцене свих њих. Уместо да креирамо 27 засебних променљивих, можемо једноставно створити низ:
double grade(27);
Овде је оцена низ који може да садржи највише 27 елемената doubleтипа.
У Ц ++, величина и врста низа не могу се мењати након његове декларације.
Декларација низа Ц ++
dataType arrayName(arraySize);
На пример,
int x(6);
Ево,
int- врста елемента који треба чувати- к - име низа
6- величина низа
Приступ елементима у низу Ц ++
У Ц ++-у је сваки елемент у низу повезан са бројем. Број је познат као индекс низа. Помоћу тих индекса можемо приступити елементима низа.
// syntax to access array elements array(index);
Размотримо низ к који смо видели горе.
Елементи низа у Ц ++
Неколико ствари које треба запамтити:
- Индекси низа почињу са
0. Значење к (0) је први елемент сачуван у индексу0. - Ако је величина низа
n, последњи елемент се чува у индексу(n-1). У овом примеру, к (5) је последњи елемент. - Елементи низа имају узастопне адресе. На пример, претпоставимо да је почетна адреса
x(0)2120д. Тада ће адреса следећег елементаx(1)бити 2124д, адресаx(2)2128д и тако даље.
Овде се величина сваког елемента повећава за 4. То је зато што је величинаint4 бајта.
Иницијализација низа Ц ++
У Ц ++-у је могуће иницијализирати низ током декларације. На пример,
// declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
Елементи низа Ц ++ и њихови подаци
Друга метода за иницијализацију низа током декларације:
// declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Овде нисмо поменули величину низа. У таквим случајевима, компајлер аутоматски израчунава величину.
Ц ++ низ са празним члановима
У Ц ++-у, ако низ има величину n, можемо да похранимо до н броја елемената у поље. Међутим, шта ће се догодити ако похранимо мање од н броја елемената.
На пример,
// store only 3 elements in the array int x(6) = (19, 10, 8);
Овде низ к има величину 6. Међутим, иницијализовали смо га са само 3 елемента.
У таквим случајевима, компајлер додељује случајне вредности преосталим местима. Често је ова случајна вредност једноставно 0.
Празним члановима низа аутоматски се додељује вредност 0
Како уметнути и одштампати елементе низа?
int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);
Пример 1: Приказивање елемената низа
#include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )
Оутпут
Бројеви су: 7 5 6 12 35 Бројеви су: 7 5 6 12 35
Овде смо користили forпетљу за понављање од i = 0до i = 4. У свакој итерацији смо штампали numbers(i).
Поново смо користили опсег заснован на петљи за испис елемената низа. Да бисте сазнали више о овој петљи, проверите Ц ++ Рангед фор Лооп.
Напомена: У нашој петљи заснованој на опсегу користили смо код const int &nуместо int nкао декларацију опсега. Међутим, предност const int &nсе даје јер:
- Употреба
int nједноставно копира елементе низа у променљиву н током сваке итерације. Ово није меморијски ефикасно.
& н, међутим, користи меморијску адресу елемената низа за приступ њиховим подацима без копирања у нову променљиву. Ово је меморијски ефикасно. - Једноставно исписујемо елементе низа, а не их мењамо. Због тога користимо
constкако не бисмо случајно променили вредности низа.
Пример 2: Узмите улазе од корисника и спремите их у низ
#include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )
Оутпут
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).
Then, we used another for loop to print all the array elements.
Example 3: Display Sum and Average of Array Elements Using for Loop
#include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )
Output
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In this program:
- We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
Here,sum =0andcount = 0. - Then we used a range based
forloop to print the array elements. In each iteration of the loop, we add the current array element to sum. - Такође повећавамо вредност цоунт за
1у свакој итерацији, тако да можемо добити величину низа до краја петље фор. - Након штампања свих елемената, исписујемо збир и просек свих бројева. Просек бројева дат је са
average = sum / count;
Напомена:for Уместо нормалне forпетље користили смо петљу са опсегом.
Нормална forпетља захтева да одредимо број итерација, који је дат величином низа.
Али рангирана forпетља не захтева такве спецификације.
Ц ++ низ изван граница
Ако прогласимо низ величине 10, тада ће низ садржати елементе од индекса 0 до 9.
Међутим, ако покушамо да приступимо елементу са индексом 10 или већим од 10, то ће резултирати недефинисаним понашањем.








