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.
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