"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é a maneira mais eficiente de anexar um vetor a outro em C++?

Qual é a maneira mais eficiente de anexar um vetor a outro em C++?

Publicado em 2024-11-21
Navegar:801

What\'s the Most Efficient Way to Append One Vector to Another in C  ?

Anexando vetores com eficiência

Ao lidar com vetores, uma tarefa comum envolve anexar um vetor a outro. Embora exista uma maneira direta de conseguir isso por meio de inserções repetidas, não é a abordagem mais eficiente.

Para concatenação de vetores eficiente, C oferece o método de inserção. Supondo que você tenha dois vetores a e b, você pode anexar b perfeitamente a a da seguinte maneira:

a.insert(a.end(), b.begin(), b.end());

Este trecho de código utiliza insert para inserir todo o intervalo de elementos de b em a na posição especificada por a.end().

Como alternativa, você pode usar o compatível com C 11 funções std::begin e std::end para obter o mesmo resultado:

a.insert(std::end(a), std::begin(b), std::end(b));

Esta variante é mais genérica e pode ser usada com matrizes e também com vetores.

Para ainda maior flexibilidade, você pode empregar ADL (Argument-Dependent Lookup) com tipos definidos pelo usuário:

using std::begin, std::end;
a.insert(end(a), begin(b), end(b));

Em resumo, insert fornece uma maneira eficiente e conveniente de anexar vetores em C , permitindo que você trabalhe com sequências de vetores estendidas com facilidade.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3