C pentru începători

C ++ pentru începători

2.8. Matricea standard este un vector

Deși matricea încorporată este formală și asigură mecanismul containerului, așa cum am văzut mai sus, nu susține semantica abstractizării containerului. Înainte de adoptarea standardului C ++ pentru programare la acest nivel, a trebuit fie să dobândim clasa necesară, fie să o implementăm noi înșine. Acum, clasa matricei face parte din biblioteca standard C ++. Numai acesta este numit mai degrabă o matrice decât o matrice.






Desigur, vectorul este implementat ca un șablon de clasă. Deci, putem scrie

Există două diferențe semnificative între implementarea șablonului de clasă Array și implementarea șablonului vectorial. Prima diferență constă în faptul că vectorul suportă atât atribuirea de valori elementelor existente, cât și introducerea de elemente suplimentare, adică crește dinamic în timpul execuției, dacă programatorul a decis să profite de această caracteristică. A doua diferență este mai radicală și reflectă o schimbare semnificativă în paradigma de proiectare. În loc să susținem un set mare de operații membre care se aplică unui vector, cum ar fi sort (), min (), max (), find () și așa mai departe, clasa vectorului oferă un set minim: dimensiunea () și goală (). Operațiile mai generale menționate mai sus sunt definite ca algoritmi independenți generalizați.






Pentru a folosi clasa vectorială, trebuie să includem fișierul antet corespunzător.

La fel ca clasa Array, clasa vectorială susține operația de acces prin index. Iată un exemplu de examinare prin toate elementele unui vector:

Pentru o astfel de căutare, puteți utiliza și perechea de iteratori. Un iterator este un obiect al unei clase care acceptă abstractizarea tipului de index. În șablonul de clasă vectorial, sunt definite două funcții membre - begin () și end (), care fixează iteratorul în mod corespunzător pe primul element al vectorului și pe elementul care urmează ultimului element. Împreună, aceste două funcții specifică gama elementelor vectoriale. Folosind iteratorul, exemplul anterior poate fi rescris după cum urmează:

Definirea variabilei iter

mișcă iteratorul la următorul element al vectorului. Pentru a obține elementul în sine, trebuie să aplicați operația de dereferențiere:

Pentru a aplica algoritmul sort () numai în prima jumătate a vectorului, vom scrie:

Rolul perechii de iteratori poate fi, de asemenea, jucat de o pereche de pointeri la elementele matricei încorporate. Să ne dăm, de exemplu, o matrice:

Aranjați întreaga matrice apelând algoritmul sort ():

Deci puteți ordona primele patru elemente:

Pentru a utiliza algoritmi în program, trebuie să includeți un fișier antet

Mai jos este un exemplu de program care utilizează o varietate de algoritmi care se aplică unui obiect vectorial:

(Clasele de vectori, hărți și alte recipiente pentru a descrie în detaliu în capitolul 6. Vom încerca să pună în aplicare un sistem de căutare de text folosind aceste clase. În capitolul 12, considerate algoritmi generice și anexa oferă exemple de utilizare a acestora.)
În acest capitol, aspectele principale ale programării în C ++, baza abordării orientate pe obiecte aplicate limbii date și utilizarea bibliotecii standard, au fost analizate foarte pe scurt. În următoarele capitole, vom discuta aceste aspecte mai detaliat și sistematic.

Exercitarea 2.22

Explicați rezultatele fiecăruia dintre următoarele definiții vectoriale:

Exercitarea 2.23







Articole similare

Trimiteți-le prietenilor: