Uvod u niz nizova u C ++
U C ++ postoji mnogo tipova podataka, kao što su cijeli broj, plutaj, znak, niz. Vrsta stringova podataka je niz znakova koji završava null znakom ('\ 0') koji označava kraj matrice ili niza. C ih nije imao kao takav niz podataka, zbog čega smo morali oblikovati niz znakova da bismo formirali niz. U C ++ imamo ugrađeni niz podataka.
Primjer znaka: 'a' ili 'A'
Primjer niza (C ++): "Engleski"
Niz: niz znakova: String (0) = 'E'
Niz (1) = 'n'
Niz (2) = 'g'
Niz (3) = 'l'
Niz (4) = 'i'
Niz (5) = 's'
Niz (6) = 'h'
Niz (7) = '\ 0'
Nizovi se mogu deklarirati, pisati i ispisati izravno na C ++. Također, svakom znaku u nizu može se pristupiti pomoću indeksa sličnog indeksiranju u nizu. U slučaju niza, kada čitamo u obliku nizova znakova pomoću scanf (), zaustavit će niz ili funkciju čitanja kada pronađe prvi bijeli razmak. Da bi se to izbjeglo može se koristiti funkcija (). To čita cijeli redak i prestat će čitati samo kad korisnik pritisne "Enter".
Niz nizova u C ++ nizu više niza
Niz nizova ili Niz nizova niz je niza više niza. To se može proglasiti na sljedeći način:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Za ispis čitavog nizova niza, za petlju se može koristiti:
Kodirati:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Izlaz:
Kako pristupiti elementima iz niza stringova?
Niz nizova sličan je dvodimenzionalnom nizu. Prva dimenzija ili indeks određuje indeks niza iz niza 1. riječi / niza ili druge riječi / niza i slično. Dok druga dimenzija ili indeks određuje koji znak u određenoj riječi / nizu.
Da biste to objasnili jasnim primjerom:
Animals(2)(1) = 'i'
U gornjem primjeru, prvi indeks '2' određuje da je to drugi niz iz niza: '' Tiger ''. Drugi indeks '1' određuje da je to drugo slovo ili indeks 1 iz riječi 'Tigar'. Pomoću dvodimenzionalnog indeksiranja svaki se znak iz svakog niza može lako pristupiti.
Raspodjela ili definiranje nizova nizova
Postoje različite metode dodjele niza nizova:
1. 2D niz Char (koji se može koristiti i u C)
naziv char (maks. broj elemenata) (maks. veličina svakog elementa)
boja boje (4) (8) = ("plava", "crvena", "bijela", "crna")
Kodirati:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Izlaz :
Ovdje je boja matrice fiksne veličine, to jest broj elemenata je fiksiran i također je određen broj znakova ili veličina elementa. Maksimalni broj elemenata koji se mogu definirati je 4, a svaki može imati najviše 8 znakova, ne više od toga. Ovo je glavna prepreka u nizu znakova 2d.
2. Niz s ključnim nizom ključnih riječi (moguće samo na C ++)
Naziv niza (maks. broj elemenata)
boja niza (4) = ("plava", "crvena", "bijela", "crna")
Kodirati:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Izlaz :
Ovdje je fiksirana samo jedna dimenzija kada je izjavimo kao niz niza. Fiksan je samo broj elemenata. Veličina elementa može varirati. Ali određivanjem druge dimenzije određenom karakteru možemo pristupiti ili prikazati iz odgovarajućeg niza.
3. Korištenje vektora u C ++
Ime vektora
vektorska boja
Kodirati:
#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;
)
Izlaz:
Ovdje se dinamički raspoređuje, iz hrpe se dodjeljuje memorija. Veličina nije fiksna. Može se povećavati ili smanjivati po broju elemenata. U slučaju dinamičkog raspoređivanja nizova nizova pomoću naredbe "novo", moramo ručno rasporediti dodijeljenu memoriju. Ali u slučaju vektora, to nije potrebno. Preusmjeravanje je moguće u vektoru dok to nije moguće u dinamički dodijeljenom nizu.
4. Prolazak nizova nizova u funkciji
Niz nizova može se prenijeti na funkciju sličnu načinu na koji prolazimo polje.
Kodirati:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Izlaz :
Ovdje prenosimo str string niz kao parametar funkciji "display" koja ispisuje treći element nizova stringova ("Pozitivno").
5. Kopiranje od niza nizova u drugi
Da bismo kopirali iz string niza u drugi, trebali bismo kopirati svaki element pojedinačno, ali cijeli se niz ne može kopirati u jednom kadru.
Kodirati:
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;
)
)
Izlaz pogreške:
Izlaz:
Ovdje kada smo pokušali kopirati čitavu glavnu nizu stringova (str) u drugu nizu nizova, došli smo do pogreške (kao što je prikazano na snimci zaslona1), a kada smo kopirali element po element, str je kopiran u s i to smo mogli provjeriti gledanjem druge snimke zaslona.
Zaključak
Dakle, niz je vrsta podataka koja predstavlja niz znakova i prisutan je samo u C ++. U C-u smo se deklarirali kao niz znakova. Niz nizova je niz koji čine mnogi nizovi. Kada je deklariran statički ili dinamički, on je fiksne veličine, a kada je deklariran u obliku vektora, veličina nije fiksna. Svakom elementu i znaku određenog elementa može se lako pristupiti pomoću indeksiranja nizova niza.
Preporučeni članci
Ovo je vodič za niz struje u C ++. Ovdje smo raspravljali o prekomjernom elementu u String Arrayu u C ++ i dodjeli String Array u C ++. Možete i proći kroz naše druge povezane članke da biste saznali više -
- Niz nizova u Pythonu
- StringBuffer na Javi
- Funkcije struna Pythona
- Nizi u C ++
- Uvod u niz nizova u C #
- Top 11 značajki i prednosti C ++
- Top 8 usporedba guda i vs StringBuilder
- Rad u Unixu sa sintaksom?