vector<> Դինամիկ զանգվածներ

Մինչ այս պահը մենք միշտ հայտարարել և օգտագործել ենք զանգվածներ դրանք հնարավորին մեծ սահմանելով և ապա դրանց մեջ արժեքներ ավելացնելով։ Սովորաբար այդ դեպքում ծրագրերը կարող էին ունենալ հետևյալ տեսքը՝
int main() {
	int a[1000000];
	int n;
	cin >> n;
	for (int i=0; i < n; ++i) {
		cin >> a[i];
	}
	return 0;
}
Այս դեպքում նույնիսկ եթե n-ը լիներ 10, մենք միևնույնն է օգտագործելու էինք 1000000 ամբողջ թիվ պահելուն համապատասխան հիշողություն։ Սա կարող է նորմալ լինել փոքր ծրագրերի դեպքում, բայց երբ կարիք կա շատ զանգվածներ պահել և հիշողություն խնայել պետք է ավելի զգույշ վարվել զանգվածներ հայտարարելիս։
Շատ կարևոր է նշել որ չի կարելի հայտարարել զանգվածն ինչպես՝
int n;
cin >> n;
int a[n];   // Some compilers fail to process this
Այս դեպքում որոշ կոմպիլյատորներ սխալ են համարում ծրագիրը և չեն կոմպիլացնում ծրագիրը։ C++ում զանգվածները պետք է հայտարարվեն կոնստանտ չափերով և չեն կարող ունենալ փոփոխական չափ (այս դեպքում n-ը կարող է ընդունել շատ տարբեր արժեքներ)։
 

vector <type>

Որպեսզի հնարավոր լինի հայտարարել փոփոխական չափի զանգվածներ, կարելի է օգտագործել ստանդարտ գրադարանի vector տիպը։ Փոփոխական չափի զանգված հայտարարելու և ներմուծելու համար կարող ենք անել հետևյալը՝
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector <int> a(n);   // կհայտարարի a զանգված, որը կունենա n էլեմենտ
	for (int i=0; i < n; ++i) {
		cin >> a[i];
	}
	return 0;
}
vector տիպի զանգված հայտարարելիս շատ կարևոր է նշել էլեմենտների տիպը։ Այսինքն եթե մենք int -երի զանգված հայտարարելիս գրում էինք int a[100], ապա vector հայտարարելիս կգրենք vector <int> a(100)։ vector-ի տիպը միշտ նշվում է չակերտների մեջ և կարող է լինել ցանկացած բան։ Այսինքն կարող ենք ունենալ vector <char> կամ vector <string> կամ vector <double> կամ vector <long long> և այլն։
 
Իսկ vector-ի չափը նշում ենք կլոր փակագծերի մեջ։ Այսինքն կարող ենք գրել vector <double> a(10) բայց օրինակ չենք կարող ունենալ vector <int> b(2.5)
Եթե ուղակի հայտարարենք vector <int> a; առանց չափը նշելու, ապա այն կունենա 0 էլեմենտ։
 
Վարժություն՝
Մուտքի առաջին տողում ունենալով n բնական թիվ, անհրաժեշտ է ներմուծել n հատ իրական թիվ (double) և ելքում տպել դրանց գումարը։
Մուտք
Ելք
3 4 -5.5 6
4.5
 

Constraints

Time limit: 0.4 seconds

Memory limit: 512 MB

Output limit: 5 MB

To check your solution you need to sign in
Sign in to continue