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

Konteynerdi qaytalaw

Standart cikllardı paydalanıw arqalı array konteyneri arqalı qaytalawǵa boladı:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include <iostream>

#include <array>

#include <string>

  

int main()

{  

    const unsigned n = 5;

    std::array<std::string, n> people { "Qarajan", "Alpamıs", "Gúlayım", "Baxadır", "Lepesbay" };

 

    // indekler arqalı kirisiw

    for(int i{}; i < n; i++)

    {

        std::cout << people[i] << std::endl;

    }

    std::cout << std::endl;

    // izbe-izlik arqalı qaytalaw

    for (auto person : people)

    {

        std::cout << person << std::endl;

    }

}

Ekran kórinisi hám nátiyje

Tiykarǵı array funkciyaları

Jańa elementlerdi array konteynerine qosıw yamasa burınnan barlardı óshiriw múmkin emes. Biz paydalana alatuǵın tiykarǵı array tipiniń funkciyaları:

  • size() : konteyner ólshemin qaytaradı

  • at(index) : indeks indeksindegi elementti qaytaradı

  • front() : birinshi elementti qaytaradı

  • back() : sońǵı elementti qaytaradı

  • fill(n) : konteynerdiń barlıq elementlerine n mánisin tayınlaydı

Qollanıw usılları:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include <iostream>

#include <array>

#include <string>

  

int main()

{  

    std::array<std::string, 3> people { "Alpamıs", "Sháriyar", "Ájiniyaz" };

    std::string second = people.at(1);    // Sháriyar

    std::string first = people.front();  // Alpamıs

    std::string last = people.back();    // Ájiniyaz

  

    std::cout << second << std::endl;   // Sháriyar

    std::cout << first << std::endl;    // Alpamıs

    std::cout << last << std::endl;     // Ájiniyaz

  

    // barlıq elementlerge "Undefined" tayınlań

    people.fill("Undefined");  // people = { "Undefined", "Undefined", "Undefined" }

    // tekseriw

    for (int i{}; i< people.size(); i++)

    {

        std::cout << people[i] << std::endl;

    }

}

Programma kórinisi hám nátiyje

array obyektleri ápiwayı massivlerge uqsas bolǵanı menen, array tipi iykemli. Mısalı, biz bir massivti ekinshi massivtiń mánislerine tikkeley tayınlay almaymız. Sonıń menen bir qatarda, massiv obyektine basqa massiv obyektiniń maǵlıwmatların bere alamız:

1

2

3

4

5

std::array<int, 5> numbers1 { 1, 2, 3, 4, 5 };

std::array<int, 5> numbers2 = numbers1;       // bunı islewge boladı

 

int nums1[] = { 1,2,3,4,5 };

//int nums2[] = nums1;      // bunı isley almaysız

Biz sonday-aq eki array konteynerin salıstıra alamız:

1

2

3

4

5

6

7

std::array<int, 5> numbers1 { 1, 2, 3, 4, 5 };

std::array<int, 5> numbers2 { 1, 2, 3, 4, 5 };

  

std::cout << std::boolalpha << (numbers1 == numbers2) << std::endl;       // true

std::cout << std::boolalpha << (numbers1 != numbers2) << std::endl;       // false

std::cout << std::boolalpha << (numbers1 > numbers2) << std::endl;         // false

std::cout << std::boolalpha << (numbers1 < numbers2) << std::endl;     // false

Eki konteyner element boyınsha salıstırıladı. Sonıń menen, joqarıdaǵı mısalda 1 hám 2 sanınıń konteynerleri teń ekeni anıq.

vector

Vektor bir tipli obyektler toplamın qamtıytuǵın konteynerdi bildiredi. Vektorlar menen jumıs islew ushın temanı (kitapxananı) qosıw kerek:

1

#include <vector>

Meyli eki ápiwayı vektordı anıqlayıq:

1

std::vector<int> numbers;

Múyeshli qawsırmalar obyektleri vektorda saqlanatuǵın tipin kórsetedi. Yaǵnıy sanlar vektorı int tipli obyektlerdi saqlaydı. Biraq bunday vektor bos. Onıń quramında heshqanday elementler joq.

Biraq biz vektordı tómendegi qatarlardıń biri menen iske túsiremiz:

1

2

3

4

5

6

7

std::vector<int> v1;              // bos vektor

std::vector<int> v2(v1);          // v2 vektorı - v1 vektorınıń kóshirmesi

std::vector<int> v3 = v1;         // v3 vektorı - v1 vektorınıń kóshirmesi

std::vector<int> v4(5);           // v4 vektorı 5 sanınan ibarat, hár san 0-ge teń

std::vector<int> v5(5, 2);   // v5 vektorı 5 sannan ibarat, hárbir san 2-ge teń

std::vector<int> v6{1, 2, 4, 5};  // v6 vektorı 1, 2, 4, 5 sanlarınan ibarat

std::vector<int> v7 = {1, 2, 3, 5}; // v7 vektorı 1, 2, 3, 5 sanlarınan ibarat

Bul jaǵdayda qawsırmalar menen figuralı qawsırmalar arasındaǵı ayırmashılıqtı túsiniw zárúr:

1

2

3

4

std::vector<int> v1(5);   // vektor 5 sannan ibarat, vektordaǵı hárbir san o-ge teń

std::vector<int> v2{5};   // vektor bir sannan ibarat, ol 5

std::vector<int> v3(5, 2);   // vektor 5 sannan ibarat, hárbir san 2

std::vector<int> v4{5, 2};  // vektor 5 hám 2 sanınan ibarat

Bul jaǵdayda múyeshli qawsırmalarda kórsetilgen vektorda tek bir tiptegi elementlerdi saqlawǵa boladı. Basqa tiplerdiń mánislerin tómendegi jaǵdaydaǵıday vektorda saqlaw múmkin emes:

1

std::vector<int> v{5, "hi"};