C++에서 문자열을 문자 Vector로 변환
이 게시물은 C++에서 문자열을 문자 Vector로 변환하는 방법에 대해 설명합니다.
1. 범위 생성자 사용
아이디어는 입력 반복자를 범위의 초기 및 최종 위치로 가져오는 Vector 클래스에서 제공하는 범위 생성자를 사용하는 것입니다. 문자열을 문자 Vector로 변환하려면 아래와 같이 입력 반복자를 문자열의 시작과 끝에 전달해야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <string> #include <vector> int main() { std::string s = "Hello World!"; std::vector<char> v(s.begin(), s.end()); for (const char &c: v) { std::cout << c; } return 0; } |
결과:
Hello World!
2. 사용 std::copy
기능
표준 알고리즘을 사용할 수도 있습니다. std::copy
백 삽입기를 사용하여 Vector 끝에 있는 문자열의 문자를 복사합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <string> #include <vector> int main() { std::string s = "Hello World!"; std::vector<char> v; std::copy(s.begin(), s.end(), std::back_inserter(v)); for (const char &c: v) { std::cout << c; } return 0; } |
결과:
Hello World!
그만큼 std::back_inserter
을 호출 std::push_back
내부적으로 문자열의 모든 문자를 수용하기 위한 메모리 요구 사항을 처리하는 함수입니다.
Vector에 이미 문자열의 모든 문자를 수용할 수 있는 충분한 메모리가 있는 경우 Vector의 시작 부분에 입력 반복자를 전달할 수도 있습니다. std::copy
알고리즘은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <string> #include <vector> int main() { std::string s = "Hello World!"; std::vector<char> v(s.length()); std::copy(s.begin(), s.end(), v.begin()); for (const char &c: v) { std::cout << c; } return 0; } |
결과:
Hello World!
C++에서 문자열을 문자 Vector로 변환하는 것이 전부입니다.