Como trabalhar com temporários Buffers em C ++
buffers temporários são úteis para todos os tipos de tarefas. Normalmente, você usá-los quando você quiser preservar os dados originais, mas você precisa para manipular os dados de alguma forma. Por exemplo, a criação de uma versão ordenada de seus dados é um uso perfeito de um buffer temporário. o TemporaryBuffer exemplo mostra como usar um buffer temporário para classificar algumas cordas.
#incluir#incluir #incluir #incluir usando namespace std-int main () {vector Words-Words.push_back("Blue")-Words.push_back("Green")-Words.push_back("Teal")-Words.push_back("Brick")-Words.push_back("Purple")-Words.push_back("Brown")-Words.push_back("LightGray")-int Count = Words.size () - cout lt; lt; "As palavras contém:" lt; lt; Contagem lt; lt; "elementos". lt; lt; endl - // Criar o buffer e copiar os dados para it.pair Mem = get_temporary_buffer (Contagem) -uninitialized_copy (Words.begin (), Words.end (), Mem.first) - // executar uma classificação e exibir o results.sort (Mem.first, Mem.first + Mem.second) -para ( int i = 0- i lt; Mem.second- i ++) cout lt; lt; Mem.first [i] lt; lt; endl-retorno 0-}
O exemplo começa com a lista agora familiar de nomes de cores. Em seguida, ele conta o número de entradas no vetor e exibe na tela a contagem.
Neste ponto, o código cria o tampão usando temporária get_temporary_buffer. A saída é par, com o primeiro valor que contém um ponteiro para os valores de cadeia e o segundo valor que contém a contagem de elementos de dados. Mem não contém nada - você simplesmente memória alocada para ele.
A próxima tarefa é copiar os dados do vetor (Words) para par (Mem) utilização uninitialized_copy. Agora isso Mem contém uma cópia de seus dados, você pode organizá-lo usando a função de classificação. O passo final é a exibir a Mem do conteúdo na tela. Aqui está o que você verá:
Palavras contém: 7 elements.BlueBrickBrownGreenLightGrayPurpleTeal