Programação c ++: operações em uma lista inteira

programas Alguns ++ C podem lidar com dados à medida que chega e dispensá-la. A maioria dos programas, no entanto, deve armazenar dados para processamento posterior. Uma estrutura que é utilizada para armazenar dados é conhecido genericamente como uma recipiente

ou um coleção. (Muitas pessoas usam os termos como sinônimos.)

Programas a partir geralmente dependem muito da matriz para armazenamento de dados. O recipiente matriz tem um par de propriedades agradáveis: Ele armazena e recupera as coisas rapidamente. Além disso, a matriz pode ser declarada para realizar qualquer tipo de objeto em uma maneira de tipo seguro. Pesados ​​contra estas vantagens, no entanto, são dois grandes negativos.

Primeiro, você deve saber o tamanho da matriz no momento em que é criado. Este requisito geralmente não é viável, embora às vezes você vai saber que o número de elementos não podem exceder algum “valor grande.”

Video: Programação em C - Exemplo simples de lista encadeada

Vírus, no entanto, comumente explorar este tipo de “não pode ser maior do que essa” suposição, o que acaba por ser incorreta. Não há nenhuma maneira real para “crescer” um array, exceto para declarar uma nova matriz e copiar o conteúdo da matriz antiga para a mais recente versão, maior.

Em segundo lugar, a inserção ou a remoção de elementos em qualquer lugar dentro da matriz envolve elementos de cópia dentro da matriz. Este é caro em termos de memória e tempo de computação. Ordenar os elementos dentro de uma matriz é ainda mais caro.

Video: Programação em C/C++ - Aula 27 - Estruturas de Dados: Fila Estática



C ++ agora vem com a biblioteca de modelos padrão, ou STL, que inclui muitos tipos diferentes de recipientes, cada um com o seu próprio conjunto de vantagens e desvantagens ().

O Standard Template Library C ++ é uma biblioteca muito grande de recipientes, por vezes complexas. Esta sessão é considerado apenas uma visão geral do poder do STL.

Video: Programação em C/C++ - Aula 22 - Métodos de Ordenação - Selection Sort

A biblioteca STL define certas operações em toda a lista. Por exemplo, a list :: sort () método diz “eu vou ordenar a lista para você, se você só vai me dizer quais objetos ir primeiro.” Você faz isso através da definição operatorlt; (const t&, Const T&). Este operador já está definido para os tipos intrínsecos e muitas classes de biblioteca como corda. Por exemplo, você não precisa fazer nada para classificar uma lista de números inteiros:

Lista obteve-scores.push_back (10) -scores.push_back (1) -scores.push_back (5) -scores.sort () -

O programador deve definir seu próprio operador de comparação para suas próprias classes se ela quer C ++ para classificá-los. Por exemplo, a ordenação por comparação seguinte Aluna objetos de sua carteira de estudante:

Video: Curso de programação em C: #03 | Operações Aritméticas

bool operatorlt; (Student const& s1, Student const& s2) {return s1.ssID lt; s2.ssID-}

Publicações relacionadas