Programmā C++ virkne parasti ir tikai rakstzīmju masīvs (vai atsauce/norāda uz), kas beidzas ar rakstzīmi NULL. ‘. Virkne ir 1 dimensiju rakstzīmju masīvs, un virkņu masīvs ir 2 dimensiju rakstzīmju masīvskur katrā rindā ir kāda virkne.
Tālāk ir norādīti 5 dažādi veidi, kā izveidot virkņu masīvu programmā C++:
- Izmantojot Rādītāji
- Izmantojot 2-D masīvs
- Izmantojot Stīgu klase
- Izmantojot Vektoru klase
- Izmantojot Masīva klase
1. Rādītāju izmantošana
Rādītāji ir simbolisks adreses attēlojums. Vienkāršiem vārdiem sakot, rādītājs ir kaut kas tāds, kas tajā saglabā mainīgā adresi. Izmantojot šo metodi, virkņu literāļu masīvs tiek izveidots ar rādītāju masīvu, kurākatrs rādītājs norāda uz noteiktu virkni.
Piemērs:
C++
// C++ program to demonstrate> // array of strings using> // pointers character array> #include> // Driver code> int> main()> {> >// Initialize array of pointer> >const> char>* colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
kaut ko ātri kārtot
>
>Izvade
Blue Red Orange Yellow>
Paskaidrojums:
java operatora prioritāte
- Virkņu skaits ir fiksēts, bet tam nav jābūt. 4 var izlaist, un kompilators aprēķinās pareizo izmēru.
- Šīs virknes ir konstantes, un to saturu nevar mainīt. Tā kā virkņu literāļi (burtiski pēdiņās norādītās virknes) pastāv tikai lasāmā atmiņas apgabalā, mums šeit ir jānorāda const, lai novērstu nevēlamu piekļuvi, kas var izraisīt programmas avāriju.
2. Izmantojot 2D masīvu
Divdimensiju masīvs ir vienkāršākā daudzdimensiju masīva forma, kurā dati tiek glabāti tabulas veidā. Šī metode ir noderīga, ja ir zināms visu virkņu garums un ir vēlama noteikta atmiņas platība. Vieta stīgām tiks piešķirta vienā blokā
Piemērs:
C++
// C++ program to demonstrate> // array of strings using> // 2D character array> #include> // Driver code> int> main()> {> >// Initialize 2D array> >char> colour[4][10]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
>
>Izvade
Blue Red Orange Yellow>
Paskaidrojums:
- Ir fiksēts gan virkņu skaits, gan virkņu lielums. Atkal 4 var izlaist, un atbilstošo izmēru aprēķinās kompilators. Tomēr ir jānorāda otrā dimensija (šajā gadījumā 10), lai kompilators varētu izvēlēties piemērotu atmiņas izkārtojumu.
- Katru virkni var modificēt, bet tā aizņems visu vietu, ko piešķir otrā dimensija. Katrs no tiem tiks izlikts atmiņā viens otram un nevar mainīt izmēru.
- Dažreiz ir vēlama kontrole pār atmiņas nospiedumu, un tas piešķirs atmiņas apgabalu ar fiksētu, regulāru izkārtojumu.
3. String klases izmantošana
STL virkne vai stīgu klase var izmantot, lai izveidotu mainīgu virkņu masīvu. Izmantojot šo metodi, virknes lielums nav fiksēts, un virknes var mainīt, kas to tomēr padara dinamisku. std::string var izmantot, lai izveidotu virkņu masīvu, izmantojot iebūvētās funkcijas.
Piemērs:
C++
// C++ program to demonstrate> // array of strings using> // string class> #include> #include> // Driver code> int> main()> {> >// Initialize String Array> >std::string colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Print Strings> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> }> |
>
java dinamiskais masīvs
>Izvade
Blue Red Orange Yellow>
Paskaidrojums:
Masīvs ir fiksēta izmēra, bet tam nav jābūt. Atkal šeit norādītos 4 var izlaist, un kompilators noteiks atbilstošo masīva izmēru. Stīgas ir arī mainīgas, ļaujot tās mainīt.
4. Izmantojot vektoru klasi
A vektors ir dinamisks masīvs, kas dubulto tā lielumu ikreiz, kad tiek pievienota jauna rakstzīme, kas pārsniedz tā ierobežojumu. STL konteinera vektoru var izmantot, lai dinamiski piešķirtu masīvu, kura izmērs var atšķirties.
To var izmantot tikai C++, jo C nav klases. Ņemiet vērā, ka inicializatoru saraksta sintaksei šeit ir nepieciešams kompilators, kas atbalsta 2011. gada C++ standartu, un, lai gan ir diezgan iespējams, ka jūsu kompilators to dara, tas ir jāņem vērā.
Piemērs:
metode apakšvirkne java
C++
// C++ program to demonstrate> // array of strings using> // vector class> #include> #include> #include> // Driver code> int> main()> {> >// Declaring Vector of String type> >// Values can be added here using> >// initializer-list> >// syntax> >std::vector colour{>'Blue'>,>'Red'>,> >'Orange'>};> >// Strings can be added at any time> >// with push_back> >colour.push_back(>'Yellow'>);> >// Print Strings stored in Vector> >for> (>int> i = 0; i std::cout << colour[i] << '
'; }> |
>
>Izvade
Blue Red Orange Yellow>
Paskaidrojums:
- Vektori ir dinamiski masīvi, un tie ļauj jebkurā laikā pievienot un noņemt vienumus.
- Vektoros var izmantot jebkuru veidu vai klasi, bet dotajam vektoram var būt tikai viens tips.
5. Masīva klases izmantošana
Masīvs ir viendabīgs datu maisījums, kas tiek nepārtraukti glabāts atmiņas telpā. STL konteineru masīvu var izmantot, lai piešķirtu fiksēta izmēra masīvu. To var izmantot ļoti līdzīgi kā vektoru, taču izmērs vienmēr ir fiksēts.
Piemērs:
C++
// C++ program to demonstrate> // array of string using STL array> #include> #include> #include> // Driver code> int> main()> {> >// Initialize array> >std::array colour{>'Blue'>,>'Red'>,> >'Orange'>,>'Yellow'>};> >// Printing Strings stored in array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
hadoop apmācība
>
>Izvade
Blue Red Orange Yellow>
Tie nebūt nav vienīgie veidi, kā izveidot stīgu kolekciju. C++ piedāvā vairākas konteineru klases, no kurām katrai ir dažādi kompromisi un funkcijas, un tās visas pastāv, lai izpildītu prasības, kas jums būs jūsu projektos. Izpētiet un izklaidējieties!
Secinājums: No visām metodēm Vector, šķiet, ir labākais veids, kā izveidot virkņu masīvu programmā C++.
s.