Niz nizov v C ++ - Dostop do elementov iz nizov nizov - Razporeditev

Kazalo:

Anonim

Uvod v niz nizov v C ++

V C ++ je veliko podatkovnih vrst, na primer celo število, plovec, znak, niz. Vrsta podatkovnih nizov je niz znakov, ki se konča z ničelnim znakom ('\ 0'), ki označuje konec matrike ali niza. C jih ni imel kot vrste podatkovnega niza, zaradi česar smo morali oblikovati niz znakov, da smo oblikovali niz. V C ++ imamo vgrajen niz podatkovnih vrst.

Primer znaka: 'a' ali 'A'

Primer niza (C ++): »angleščina«

Niz: niz znakov: String (0) = 'E'

String (1) = 'n'

Niz (2) = 'g'

Niz (3) = 'l'

Niz (4) = 'i'

String (5) = 's'

Niz (6) = 'h'

Niz (7) = '\ 0'

Strune lahko deklarirate, napišete in natisnete neposredno v C ++. Do vsakega znaka v nizu je mogoče dostopati z indeksom, ki je podoben indeksiranju v matriki. V primeru niza, ko beremo v obliki nizov znakov s pomočjo scanf (), zaustavi niz ali funkcijo branja, ko najde prvi beli presledek. Da bi se temu izognili, lahko uporabite funkcijo get (). To bere celo vrstico in neha brati šele, ko uporabnik pritisne na "Enter".

Niz nizov v C ++ matriki z več nizi

Niz nizov ali Niz nizov je niz več nizov. To je mogoče ugotoviti na naslednji način:

string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");

Za tiskanje celotnega niza niz lahko uporabite zanko:

Koda:

for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)

Izhod:

Kako dostopati do elementov iz nizov nizov?

Niz strun je podoben dvodimenzionalnemu nizu. Prva dimenzija ali indeks določa indeks niza iz matrike, kot je prva beseda / niz ali druga beseda / niz in tako naprej. Ker druga dimenzija ali indeks določa, kateri znak v tej določeni besedi / nizu.

Če želite pojasniti z jasnim primerom:

Animals(2)(1) = 'i'

V zgornjem primeru prvi indeks '2' določa, da je 2. niz iz matrike: "Tiger". Drugi indeks '1' določa, da je to druga črka ali indeks 1 iz besede "Tiger". Z dvodimenzionalno indeksiranjem lahko vsak znak iz vsakega niza enostavno dostopa.

Dodelitev ali določitev nizov nizov

Obstajajo različni načini dodeljevanja niza nizov:

1. 2D matrika Char (ki jo lahko uporabljate tudi v C)

ime char (največje število elementov) (največja velikost vsakega elementa)

barvna barva (4) (8) = („modra“, „rdeča“, „bela“, „črna“)

Koda:

int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Izhod :

Tu je barva matrike fiksne velikosti, to je število elementov je fiksno in določeno je tudi število znakov ali velikosti elementa. Največje število elementov, ki jih je mogoče definirati, je 4, vsak pa lahko največ 8 znakov, ki ne presega tega. To je glavna ovira v nizu znakov 2d.

2. Niz s ključno vrvico (možno samo v C ++)

Ime niza (največje število elementov)

barva niza (4) = ("modra", "rdeča", "bela", "črna")

Koda:

int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Izhod :

Tu je določena samo ena dimenzija, ko jo izjavimo kot niz niza. Fiksno je samo število elementov. Velikost elementa se lahko razlikuje. Toda z določitvijo druge dimenzije lahko dostopamo do določenega znaka ali ga prikažemo iz ustreznega niza.

3. Uporaba Vektorjev v C ++

Ime vektorja

vektorska barva

Koda:

#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)
#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)

Izhod:

Tu je dinamično dodeljen, pomnilnik je dodeljen iz kopice. Velikost ni določena. Lahko se poveča ali zmanjša glede na število elementov. V primeru dinamičnega razporejanja nizov nizov z ukazom "new" moramo ročno razporediti dodeljeni pomnilnik. Pri vektorju pa to ni potrebno. Prerazporeditev je možna v vektorju, medtem ko v dinamično razporejenem nizu ni možna.

4. Potezanje nizov nizov v funkciji

Niz nizov lahko prenesemo na funkcijo, podobno načinu Kako prenesemo matriko.

Koda:

#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)

Izhod :

Tu posredujemo str niz niza kot parameter funkciji "display", ki natisne 3. element elementa nizov nizov ("Pozitivno").

5. Kopiranje iz String Array v drugega

Če želite kopirati iz nizov nizov v drugega, bi morali kopirati vsak element posebej, vendar celotnega niza ni mogoče kopirati z enim posnetkom.

Koda:

int main() (
string str(4) = ("Good", "Bad", "Positive", "Negative");
string s(4);
// s = str; -à This line gives error as the whole array cannot be copied at a single go
// It can be copied as shown below
for( int i=0; i<4; i++) (
s(i) = str(i);
)
for(int i=0; i<4; i++) (
cout << "The element " << i+1 << " of copied array = " << s(i) << " is same as
the corresponding element in main array which is " << str(i) << endl;
)
)

Izhod iz napake:

Izhod:

Ko smo poskušali kopirati celoten niz nizov (str) v drug niz nizov, smo dobili napako (kot je prikazano na posnetku zaslona1), medtem ko smo pri kopiranju elementa za elementom str kopirali v s in to smo lahko preverili s prikazom drugega posnetka zaslona.

Zaključek

Tako je niz podatkovni tip, ki je niz znakov in je prisoten samo v C ++. V C smo deklarirali kot niz znakov. Niz nizov je niz, sestavljen iz številnih nizov. Če je deklariran statično ali dinamično, je fiksne velikosti in ko je deklariran v obliki vektorja, velikost ni fiksna. Vsak element in znak v določenem elementu je enostavno dostopati z indeksiranjem nizov nizov.

Priporočeni članki

To je vodnik za String Array v C ++. Tukaj razpravljamo o presežku elementa v String Array v C ++ in dodelitvi String Array v C ++. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Niz nizov v Pythonu
  2. StringBuffer v Javi
  3. Funkcije nizov Python-a
  4. Nizi v C ++
  5. Uvod v niz nizov v C #
  6. 11 najboljših lastnosti in prednosti C ++
  7. Najboljših 8 primerjav godal in StringBuilder
  8. Array deluje v Unixu s sintakso?