logo

Niz nizov v C++ – 5 različnih načinov ustvarjanja

V C++ je niz običajno le niz (ali sklic/kaže na) znakov, ki se konča z znakom NULL ' ‘. Niz je 1-dimenzionalni niz znakov in niz nizov je 2-dimenzionalni niz znakovkjer vsaka vrstica vsebuje nekaj nizov.

Spodaj je 5 različnih načinov za ustvarjanje niza nizov v C++:



  1. Uporaba Kazalci
  2. Uporaba 2-D niz
  3. Uporabljati Razred niza
  4. Uporabljati Vektorski razred
  5. Uporabljati Razred matrike

1. Uporaba kazalcev

Kazalci so simbolna predstavitev naslova. Preprosto povedano, kazalec je nekaj, kar v sebi shrani naslov spremenljivke. Pri tej metodi je niz nizovnih literalov ustvarjen z nizom kazalcev, v kateremvsak kazalec kaže na določen niz.

primer:

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

miška in vrste miške

>

>

Izhod

Blue Red Orange Yellow>

Pojasnilo:

  • Število nizov je fiksno, vendar ni nujno. 4 lahko izpustite in prevajalnik bo izračunal pravilno velikost.
  • Ti nizi so konstante in njihove vsebine ni mogoče spreminjati. Ker literali nizov (dobesedno nizi v narekovajih) obstajajo v območju pomnilnika samo za branje, moramo tukaj navesti const, da preprečimo neželene dostope, ki lahko zrušijo program.

2. Uporaba 2D polja

2-D polje je najpreprostejša oblika večdimenzionalnega polja, v katerem so shranjeni podatki v obliki tabele. Ta metoda je uporabna, ko je znana dolžina vseh nizov in je zaželen določen pomnilniški odtis. Prostor za nize bo dodeljen v enem bloku

primer:

C++


programček applet



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

>

>

Izhod

Blue Red Orange Yellow>

Pojasnilo:

  • Število nizov in velikost nizov sta določena. Tudi 4 lahko izpustite, ustrezno velikost pa bo izračunal prevajalnik. Druga dimenzija pa mora biti podana (v tem primeru 10), da lahko prevajalnik izbere ustrezno postavitev pomnilnika.
  • Vsak niz je mogoče spremeniti, vendar bo zasedel ves prostor, ki ga daje druga dimenzija. Vsak bo v pomnilniku postavljen eden poleg drugega in ne bo mogel spremeniti velikosti.
  • Včasih je zaželen nadzor nad pomnilniškim odtisom in to bo dodelilo območje pomnilnika s fiksno, običajno postavitvijo.

3. Uporaba razreda String

Niz STL oz razred nizov se lahko uporabi za ustvarjanje niza spremenljivih nizov. Pri tej metodi velikost niza ni fiksna, nize pa je mogoče spreminjati, kar nekako naredi dinamično po naravi std::niz lahko uporabite za ustvarjanje matrike nizov z uporabo vgrajenih funkcij.

primer:

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

>

>

Izhod

Blue Red Orange Yellow>

Pojasnilo:

Niz je fiksne velikosti, vendar ni nujno. Še enkrat, 4 tukaj lahko izpustite in prevajalnik bo določil ustrezno velikost matrike. Nizi so tudi spremenljivi, kar omogoča njihovo spreminjanje.

algoritmi za razvrščanje vstavljanja

4. Uporaba vektorskega razreda

A vektor je dinamično polje, ki podvoji svojo velikost vsakič, ko je dodan nov znak, ki presega njegovo omejitev. Vektor vsebnika STL je mogoče uporabiti za dinamično dodelitev matrike, ki se lahko razlikuje po velikosti.

To je uporabno samo v C++, saj C nima razredov. Upoštevajte, da sintaksa seznama inicializatorjev tukaj zahteva prevajalnik, ki podpira standard C++ 2011, in čeprav je zelo verjetno, da ga vaš prevajalnik podpira, je treba tega upoštevati.

primer:

večnitnost v Javi

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

>

>

Izhod

Blue Red Orange Yellow>

Pojasnilo:

  • Vektorji so dinamični nizi in vam omogočajo dodajanje in odstranjevanje elementov kadar koli.
  • V vektorjih je mogoče uporabiti katero koli vrsto ali razred, vendar lahko dani vektor vsebuje samo eno vrsto.

5. Uporaba razreda Array

Matrika je homogena mešanica podatkov, ki so neprekinjeno shranjeni v pomnilniškem prostoru. Matriko vsebnika STL lahko uporabite za dodelitev matrike fiksne velikosti. Lahko se uporablja zelo podobno kot vektor, vendar je velikost vedno fiksna.

primer:

C++

preglasitev metode java




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

>

>

Izhod

Blue Red Orange Yellow>

To nikakor niso edini načini za izdelavo zbirke nizov. C++ ponuja več razredov vsebnikov, od katerih ima vsak različne kompromise in funkcije, vsi pa obstajajo za izpolnjevanje zahtev, ki jih boste imeli v svojih projektih. Raziskujte in se zabavajte!

Zaključek: Izmed vseh metod se zdi, da je Vector najboljši način za ustvarjanje niza nizov v C++.

s.