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
Conteúdo
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:
Listaobteve-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-}