"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 > Como implodir elegantemente um vetor de cordas?

Como implodir elegantemente um vetor de cordas?

Publicado em 2024-11-08
Navegar:931

How to Elegantly Implode a Vector of Strings?

Soluções elegantes para implodir vetores de strings

Implodir um vetor de strings em uma única string é uma operação comum em programação. Embora existam vários métodos, este artigo explora duas soluções elegantes para maximizar a legibilidade e a eficiência.

A primeira abordagem envolve a utilização de uma função definida pelo usuário. Aqui está o trecho de código:

static std::string& implode(const std::vector<:string>& elems, char delim, std::string& s) {
    for (std::vector<:string>::const_iterator ii = elems.begin(); ii != elems.end();   ii) {
        s  = (*ii);
        if (ii   1 != elems.end()) {
            s  = delim;
        }
    }

    return s;
}

Esta função usa um vetor de strings, um delimitador e uma referência a uma variável de string. Ele itera pelo vetor, anexando cada elemento à variável de string e adicionando o delimitador quando necessário.

No entanto, uma solução mais elegante é aproveitar a poderosa biblioteca Boost:

#include 
...
std::string joinedString = boost::algorithm::join(elems, delim);

Essa abordagem utiliza a função boost::algorithm::join, que usa uma sequência de strings e um delimitador como argumentos e retorna uma única string.

O uso do Boost fornece maior concisão e legibilidade, ao mesmo tempo que garante os benefícios de desempenho da abordagem de iteração vetorial. Além disso, aumenta a portabilidade do código, já que o Boost é amplamente suportado em diferentes plataformas.

Declaração de lançamento Este artigo é reproduzido em: 1729728914 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
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