Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como remover um índice em uma matriz dinâmica de inteiros usando C + +
matrizes dinamicamente alocados são um meio eficiente de espaço de armazenamento de quantidades variáveis ​​de dados em C + +. Eles são eficientemente organizada e oferecer benefícios em termos de velocidade e consumo de memória total consumida pela estrutura de dados. O processo de exclusão de um índice a partir de uma matriz dinâmica é bastante simples, mas uma das quedas de matrizes dinâmicas é que a velocidade dos algoritmos usados ​​para adicionar ou remover elementos da matriz é lento em comparação com outros métodos de armazenamento de dados (tais como listas ligadas , em que adicionar e excluir da matriz pode ser feito em tempo constante ) . O algoritmo mais básico para a remoção de um índice a partir de uma matriz dinâmica é executado em tempo linear e é bastante fácil de entender. Coisas que você precisa
editor de texto
Compiler
Show Mais instruções
1

Determine o tamanho final da sua matriz modificada. A remoção de um único índice irá reduzir o tamanho da matriz resultante por 1:

int newSize = currentArraySize - 1;
2

Crie uma nova matriz dinâmica que pode conter todos os inteiros restantes em matriz antiga . Use o novo tamanho para fazer isso:

int * newArray = new int [ newSize ];
3

Criar contadores para os índices em ambos os conjuntos novos e antigos . Estes serão incrementados separadamente, como você copiar o conteúdo do array antigo para o novo :

int oldArrayIndex = 0;

int newArrayIndex = 0;
4

Traverse as duas matrizes :

para ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )

{

//código para copiar vai aqui

}
5

copiar dados do array antigo para o novo , incrementando contador do novo array com balcão da velha matriz até chegar ao índice a ser excluído. Quando você alcança o índice de apagar , não copie os dados e não incrementar o novo contador matriz. Usando o laço for de cima:

para ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )

{

if (! OldArrayIndex = indexToDelete ) < br >

{

newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ];

+ + newArrayIndex ;

}

}
< br >

Anterior :

Próximo : No
  Os artigos relacionados
·XCode : Como criar uma gota 
·Como compilar Flex para iPhone 
·Como construir uma árvore de Asterisk em C + + 
·Como usar OpenGL com código de Blocos 
·Visual C não faz EXE 
·Dó sustenido Projetos de Gestão Escolar 
·Como fazer um arquivo MIDI em C + + 
·Como compilar C + + arquivos de cabeçalho 
·Como construir Lógica de Programação 
·Como fazer um arquivo CFG Com o Visual C 
  Artigos em destaque
·Como converter XML para Enum 
·Como definir o nível de isolamento em ODBC 
·Como usar arquivos de esqueleto em OGRE 
·Como Incorporar um banco de dados em um Mac App 
·Como referência uma imagem em C + + 
·Como referência C DLLs em Net 
·Como introduzir uma mistura de números e letras de um …
·Como converter BitArray para Byte 
·Como declarar uma matriz de estruturas em C 
·Como reverter um valor em C + + 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados