Elementlerge kirisiw hám olardıń ústinen qaytalaw
Vektordıń elementlerine kirisiw ushın hár túrli usıllardı qollanıwǵa boladı:
[index]: indeks boyınsha elementti alıw (massivlerdegidey), indekslew nolden baslanadı
at(index): funkciya elementi indeks boyınsha qaytaradı
front(): birinshi elementti qaytaradı
back(): sońǵı elementti qaytaradı
Vektordı qaytalap, onıń ayırım elementlerin alayıq:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <vector>
int main() { std::vector<int> numbers {1, 2, 3, 4, 5};
int first = numbers.front(); // 1 int last = numbers.back(); // 5 int second = numbers[1]; // 2 std::cout << "first: " << first << std::endl; std::cout << "second: " << second << std::endl; std::cout << "last: " << last << std::endl;
numbers[0] = 6; // mánisti ózgertiw for(int n : numbers) std::cout << n << "\t"; // 6 2 3 4 5
std::cout << std::endl; } |
Programma kórinisi hám nátiyje |
|
Indekslew elementlerdi qospaytuǵının este saqlań. Mısalı, eger vektorda 5 element bolsa, onda biz altınshı elementke erise almaymız:
1 2 |
std::vector<int> numbers {1, 2, 3, 4, 5}; numbers[5] = 9; |
Usılay qayta islengende nátiyje belgisiz boladı. Ayırım kompilyatorlar qáte jiberiwi múmkin, al ayırımları jumısın dawam ettiredi, biraq sonda da bunday shaqırıw qáte boladı hám ol báribir vektorǵa altınshı elementti qospaydı.
Bunday jaǵdaylardı boldırmaw ushın at() funkciyasın qollanıwǵa boladı, ol sonıń menen qatar indeks boyınsha elementti qaytarsa da, eger siz oǵan jaramsız indekste kiriskińiz kelse, out_of_range ayrıqsha jaǵdaydı shıǵaradı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <vector> #include <stdexcept>
int main() { std::vector<int> numbers { 1, 2, 3, 4, 5}; try { int n = numbers.at(8); } catch (std::out_of_range e) { std::cout << "Incorrect index" << std::endl; } } |
Vektorlar ústinde ámeller
Vektorǵa elementler qosıw
Vektorǵa elementlerdi qosıw ushın push_back() funkciyası paydalanıladı, oǵan qosılǵan element jiberiledi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <vector>
int main() { std::vector<int> numbers; // bos vektor numbers.push_back(5); numbers.push_back(3); numbers.push_back(10); for(int n : numbers) cout << n << "\t"; // 5 3 10
std::cout << std::endl; } |
Vektorlar massivlerden ayırmashılıǵı dinamikalıq strukturalar bolıp tabıladı, bunda biz onıń berilgen ólshemi menen sheklenemiz. Sonlıqtan biz vektorǵa dinamikalıq túrde jańa maǵlıwmatlardı qosa alamız.
emplace_back() funkciyası uqsas tapsırmanı orınlaydı - ol elementti konteynerdiń sońına qosadı:
1 2 |
std::vector<int> numbers{ 1, 2, 3, 4, 5 }; numbers.emplace_back(8); // numbers = { 1, 2, 3, 4, 5, 8 }; |