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