"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 문자열 벡터를 우아하게 내파하는 방법은 무엇입니까?

문자열 벡터를 우아하게 내파하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:300

How to Elegantly Implode a Vector of Strings?

문자열 벡터 삽입을 위한 우아한 솔루션

문자열 벡터를 단일 문자열로 삽입하는 것은 프로그래밍에서 일반적인 작업입니다. 다양한 방법이 있지만 이 기사에서는 가독성과 효율성을 극대화하기 위한 두 가지 우아한 솔루션을 살펴봅니다.

첫 번째 접근 방식은 사용자 정의 함수를 활용하는 것입니다. 코드 조각은 다음과 같습니다.

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;
}

이 함수는 문자열 벡터, 구분 기호 및 문자열 변수에 대한 참조를 사용합니다. 벡터를 반복하면서 각 요소를 문자열 변수에 추가하고 필요한 곳에 구분 기호를 추가합니다.

그러나 보다 우아한 솔루션은 강력한 Boost 라이브러리를 활용하는 것입니다:

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

이 접근 방식은 일련의 문자열과 구분 기호를 인수로 사용하는 Boost::algorithm::join 함수를 활용합니다. 단일 문자열을 반환합니다.

Boost를 사용하면 벡터 반복 접근 방식의 성능 이점을 보장하면서 향상된 간결성과 가독성을 제공합니다. 또한 Boost는 다양한 플랫폼에서 널리 지원되므로 코드 이식성이 향상됩니다.

릴리스 선언문 이 글은 1729728914에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3