Vector (programació)
![]() | Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/CPT-arrays-2d-names.svg/220px-CPT-arrays-2d-names.svg.png)
En informàtica un vector és una estructura de dades consistent en un grup d'elements que són accedits per indexació. En la majoria de llenguatges de programació cada element té el mateix tipus de dades i el vector ocupa una àrea contigua de memòria. La majoria dels llenguatges de programació tenen un tipus de dades vector ja definit.
Alguns llenguatges de programació suporten programació de vectors (per exemple APL o les versions més noves de Fortran) que generalitza operacions i funcions per a funcionar transparentment en vectors tal i como ho fan amb escalars, en comptes d'haver d'iterar sobre els membres del vector.
Als vectors multi-dimensionals s'accedeix fent servir més d'un índex: un per a cada dimensió.
Els vectors poden ser classificats com a vectors de mida fixa (a vegades anomenats vectors estàtics) la mida dels quals no pot ser canviat un cop s'han emmagatzemat, i vectors dinàmics, que poden ser redimensionats.
Propietats
Els vectors de mida fixa permeten l'accés aleatori amb cost constant. Són estructures de dades compactes, amb un overhead de memòria constant. I, en CPUs que suporten caches, la iteració seqüencial sobre un vector té una bona localitat d'espacial, ja que els elements ocupen posicions de memòria contínues. Tot i així, quan un vector és accedit aleatòriament, per exemple al consultar una taula de hash, la localitat espacial es pot perdre.
Aplicacions
A causa de les seves característiques de rendiment, els vectors són utilitzats per a implementar altres estructures de dades, com ara heaps, taules de hash, cues, cues doblement acabades, piles, cadenes i vlists.
Alguns algorismes emmagatzemen un nombre variable d'elements en una part d'un vector de mida fixa, que és equivalent a fer servir un vector dinàmic amb capacitat fixa.
Els vectors associatius ofereixen un mecanisme per a aconseguir funcionalitats com les dels vectors sense haver de fer servir grans overheads d'emmagatzemament quan els valors de l'índex estan escampats.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)