Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 17:11, 20 December 2007.

Arrays dinâmicos

From Forum Nokia Wiki

SymbianOS oferece uma série de classes para a utilização de Arrays dinâmicos (análogamente seriam como Vectorsda STL). Estas classes são sub-divididas em dois grupos CArrays e RArrays. CArrays são mais flexíveis porém RArrays oferecem uma maior eficiência. Ambas as classes são templated.

Capacidade do Array

A capacidade do array é o espaço livre disponível que foi alocado por ele. Quando este espaço é totalmente preenchido o array se expande dinâmicamente realocando memória. A capacidade inicial e em quanto ele irá se expandir são definidos pela granularidade do array que é definida durante a sua construção.

Nota: A granularidade precisa ser informada com muita cautela, caso seja um valor muito baixo e o array precise fazer várias re-alocações iremos ter um overhead, por outro lado se esta for muito alta ocorrerá um disperdício de espaço.

Tipos de buffer:

Arrays utilizam dois tipos de buffers, estes buffersé que determinam como a memória será alocada e re-alocada.

Flat Heap: Neste tipo de buffer os dados são armazenados em uma única célula heap(Heap Cell). Quando ouver a necessidade de re-alocar memória será utilizada uma nova célula com tamanho suficiente para armazenar os dados da antiga célula e os novos dados. Isto causa um certo overheadneste processo de cópia. Este tipo de bufferé indicado quando a aplicação não necessita realizar constantes realocações.

Segmented Buffer: Neste buffer os dados são armazenados em pequenos segmentos (cada um representa uma célula da memória de tamanho fixo) e é utilizado uma lista encadeada para fazer a ligação entre estes segmentos. O acesso aos dados é menos eficiente em comparação à Flat heap (é necessário percorrer a lista), porém a inserção e deleção conseguem ser mais eficiente (já que não existe a necessidade de se realizar cópia dos dados). Tipos de array:

Tamanho dos objetos:

Estas informações são referentes a quais objetos o array pode armazenar. Esta nomemclatura é utilizada no nome da classe assim você pode saber como é o seu funcionamento.

Fix: objetos de tamanhos fixos. '

Var: Objetos possuem tamanho variados.

Classes utilizadas para implementar arrays dinâmicos:

RArray - Array para objetos de tamanho fixo. Utiliza flat heap para armazena-los.
RPointerArray - Array que utiliza flat heap para armazenar ponteiros para objetos.
CArrayFixFlat - Array para objetos de tamanho fixo. Utiliza flat heap para armazena-los.
CArrayVarFlat - Array para objetos de tamanho variável. Utiliza flat heap para armazená-los.
CArrayPtrFlat - Array que utiliza flat heap para armazenar ponteiros para objetos.
CArrayPakFlat - CArrayFixSeg - Array para objetos de tamanho fixo. Armazena estes objetos em segmentos.
CArrayVarSeg - Array para objetos de tamanho variavel. Armazena estes objetos em segmentos.
CArrayPtrSeg - Array que utiliza segmentos para armazenar ponteiros para objetos.

Related Discussions
Thread Thread Starter Forum Replies Last Post
How to convert to greyscale a Image. Help. padules Mobile Java Media (Graphics & Sounds) 10 2006-02-14 14:49
请问error LNK2001: unresolved external symbol __chkstk是什么訽因? weiyonggu Symbian 1 2003-07-14 07:48
CArrayVar Problem vickey General Symbian C++ 6 2008-02-11 17:45
string arrays bullzi General Symbian C++ 2 2004-11-22 11:41
Slow rendering performance... cyphre666 Mobile Java Media (Graphics & Sounds) 4 2003-09-16 11:38
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX