Скачиваний:
0
Добавлен:
21.02.2024
Размер:
1.1 Mб
Скачать

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 };