Princípios de uma simples C ++ Sequência de contêiner Biblioteca Sequências em C ++ Simplificado - Parte 2 Division 1 Introdução Esta é a parte dois de minha série, Contentores Biblioteca Sequências em C ++, simplificado. Você deve ter lido parte 1 antes de ler esta parte. Nesta parte da série, nós olhamos para os princípios de uma simples Container C ++ Sequence. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected].
Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo. Algumas regras relativas à lista I irá criar um recipiente C ++ simples adequada, na próxima parte da série. Existem algumas regras relativas à matriz na memória dinâmica que você deve recordar ou aprender. Nós olhamos para eles para o resto deste tutorial. Como criar uma matriz em Dinâmica de Memória A seguinte declaração, copiado do construtor da classe acima, cria uma matriz na memória dinâmica.
T * listPtr = new T [noIniCells]; T é um espaço reservado para o tipo de objeto se você está lidando com um modelo. Se você não estavam lidando com um modelo, então T seria dizer, int ou char ou flutuar, etc. Acessando um elemento para uma matriz int, se você deseja que o novo valor de um elemento, digamos de índice 3 para ser 17, você deverá digitar a declaração: listPtr [3] = 17; Você usa o ponteiro e os colchetes; você não preceder o ponteiro com * para o valor; os colchetes cuidar disso. Para o recipiente simples, teremos uma maneira ligeiramente diferente de acessar os valores.
Aumentando o tamanho de matriz dinâmica É possível aumentar o tamanho, um elemento de cada vez. Para fazer isso, use o ponteiro com o índice do próximo elemento esperado para acessar o próximo elemento. Se a matriz acima possui 5 elementos inicialmente, isto significa que a maior índice é 4. Se a matriz é para ints, para aumentar o tamanho da matriz por um e dar o valor 26 para o novo elemento, escreva a instrução: listPtr [5 ] = 26; É a Memória Dinâmica Disponível? Memória dinâmica (loja livre) pode não estar disponível quando você quiser.
Então, você tem que verificar se a memória dinâmica está disponível antes de criar a matriz e também verificar se ele está disponível antes de adicionar um novo elemento. O código a seguir irá verificar e criar a lista inicial para o construtor acima: T * listPtr = new T [noIniCells]; if (! listPtr = null) {for (int i = 0; i {listPtr [i] =