알고리즘에 유용한 팁들2
어떤 문자열을 받았고, 그것을 ' '기준으로, 즉 공백문자를 기준으로 나누고 싶다면, strtok를 활용해도 되지만 C++에서는 더 간단한 방법이 있다.
<include sstream>
<include unordered_map>
<include vector>
vector <string> word;
string target="I am a good boy";
istringstream ss(target);
string stringbuffer;
unordered_map <string,int> map;
while(getline(ss,stringbuffer,' ')){
if(map[stringbuffer]==0){
map[stringbuffer]=1;
word.push_back(stringbuffer);
}
}
word의 값들을 찍어보면 다음과 같이 나온다.
배운점
- word라는 string형 벡터안에는 같은 단어가 여러개 들어가지 않게 하기 위해 map을 만들었고, map[string형]의 value가 1개 이상 있으면 넣지 않게 한다. (마치 set의 기능처럼)
- istringstream에서 i는 input이다.
- getline안에 구분자를 넣어줄 때는 " "이 아닌 ' '을 넣어야 한다.
- istringstream을 쓰기 위해서는 sstream을 include해주자!
Author And Source
이 문제에 관하여(알고리즘에 유용한 팁들2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shmaxlee/알고리즘에-유용한-팁들2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)