본문 바로가기
알고리즘 부셔버렷/나만의 작은 STL정보

문자열 문제에서 유용한 STL 함수

by Unagi_zoso 2022. 5. 27.

편의를 위하여 index와 iter를 축약하여 말하는데

index는 배열 등의 index를 뜻하며 unsigned int 타입으로 이해하시면 됩니다.

  iter는 반복자를 의미합니다.

 

  string 라이브러리

begin(),end()     :  각 각 string의 시작 반복자와 마지막의 다음번째를 가리키는 반복자를 반환한다.

front(), back()    :  각 각 string의 첫번째 문자와 마지막 문자를 반환한다.

empty()             :   string이 비었는지 확인하고 비었으면 true 아니면 false를 반환한다.

 

insert(index, count, char)    :   index에서부터 count만큼 char를 삽입한다.

         (index, string)             :  index에서부터 string을 삽입한다. 

         (index, string, count)   : index에서부터 count만큼 string을 삽입한다.

         

append(string)   :  string 뒤에 string을 첨가한다.

 

erase(iter)   :  해당 반복자의 문자를 제거한다.

         (index)  :  index 뒤의 문제를 전부 제거합니다

         (index, size)  : index에서부터 size 만큼 제거합니다

         (iter_from, iter_to)  :  iter_from에서 iter_ to까지 제거합니다.

erase는 remove와 달리 capacity 자체를 지워줍니다.

** erase remove idiom **

c++에서 사용되는 방식으로  erase와 remove 함수를 응용하는데 어떤 기준을 통해  문자열에서 문자를 제거합니다.

erase(remove(iter_from, iter_to, caller), iter_to)

여기 caller에서는 람다함수도 들어갈 수 있습니다.

 

 

substr(index, count)  :  index에서 count만큼 잘라 string으로 반환합니다.

 

find(char)   :  찾은 문자의 인덱스를 반환합니다.

      (string) :  찾은 string의 시작 인덱스를 반환합니다.

 

string += string  :  += 연산을 지원하며 string += string은 피string이 앞string에 첨가됩니다

               char   :  string에 char이 첨가됩니다.

 

  algorithm 라이브러리

transeform(in_iter_from, in_iter_to, ou_iter, caller)  :  in_iter_from에서 in_iter_to까지 caller로 처리하고 처리된 것을 ou_iter부터 저장합니다.

 

reverse(iter_from, iter_to)  :  iter_from에서 iter_to까지 element들을 뒤집어 줍니다.

댓글