[번외] String 컨테이너

......·2023년 12월 14일

STL

목록 보기
8/8

String컨테이너는 STL에는 포함되지 않지만 유사 컨테이너로 알아두면 좋음

String 컨테이너

  • vector와 비슷한 컨테이너
  • 시퀸스 컨테이너이며 배열 기반 컨테이너의 범주에 속함
  • string 은 char 형식의 문자를 관리하기 위한 basic_string<char>형식
  • wstring 은 유니코드 문자(wchar_t)를 관리하기 위한 basic_string<wchar_t>형식

멤버 정의 형식

allocator_type			: 메모리 관리자 형식
const_iterator			: const 반복자 형식
const_pointer			: const value_type* 형식
const_reference			: const value_type& 형식
const_reverse_iterator	: const 역 반복자 형식
difference_type			: 두 반복자 차이의 형식
iterator				: 반복자 형식
npos					: 찾기 관련 '실패' 정의값이며, 일반적으로 -1
pointer					: value_type* 형식
reference				: value_type& 형식
reverse_iterator		: 역 반복자 형식
size_type				: 첨자나 원소의 개수 형식
traits_type				: 문자의 특성 형식
value_type				: 원소의 형식

인터페이스

  • 생성자
string s				: 디폴트 생성자로 생성
string s(sz)			: sz문자열로 s생성
string s(sz, n)			: sz문자열에서 n개의 문자로 생성
string s(n, c)			: n개의 c문자로 생성
string s(iter1, iter2)	: 반복자 구간[iter1, iter2)의 문자로 생성
string s(p1, p2)		: 포인터 구간[p1, p2)의 문자로 생성
  • 멤버 함수
s.append(sz) 외 여러버전			: s에 sz를 붙임
s.assign(sz) 외 여러버전			: s에 sz문자열을 할당
s.at(i)							: s의 i번째 문자를 참조(const, 비 const버전, 범위점검을 포함)
p = s.begin()					: p는 s의 첫 문자를 가리키는 반복자(const, 비 const 버전)
s.c_str()						: C스타일(널문자를 포함)의 문자열의 주소 반환
n = s.capacity()				: n은 s에 할당된 메모리 공간의 크기
s.clear()						: s를 비움
s.compare(s2) 외 여러버전			: s와 s2를 비교
s.copy(buf, n)					: buf로 n개의 문자를 복사
s.data()						: 문자열의 배열 주소를 반환
s.empty()						: s가 비었는가?
p = s.end()						: p는 s의 끝을 표시하는 반복자(const, 비 const 버전)
q = s.erase(p)					: p가 가리키는 문자 제거, q는 다음원소를 가리킴
q = s.erase(b,e)				: [b,e)의 모든 문자를 제거, q는 다음원소를 가리킴
s.find(c) 외 여러버전				: c문자를 탐색
s.insert(n, sz) 외 여러버전		: n의 위치에 sz를 삽입
s.length()						: 문자의 개수
n = s.max_size()				: n은 s가 담을 수 있는 최대 문자의 개수(메모리의 크기)
s.push_back(c)					: s의 끝에 c를 추가
p = s.rbegin()					: p는 s의 역 순차열의 첫 원소를 가리키는 반복자(const, 비 const 버전)
p = s.rend()					: p는 s의 역 순차열의 끝을 가리키는 반복자(const, 비 const 버전)
s.replace(pos, n, sz) 외 여러버전	: pos위치의 n개의 문자를 sz로 바꿈
s.reserve(n)					: n개의 문자를 저장할 공간을 예약
s.resize(n)						: n으로 크기를 변경하고 확장되는 공간의 값을 기본값으로 초기화
s.resize(n, c)					: n으로 크기를 변경하고 확장되는 공간의 값을 c으로 초기화
s.rfind(c) 외 여러버전				: c문자를 끝부터 찾음
s.size()						: 원소의 개수
s2 = s.substr(pos)				: s2는 pos부터의 s문자열
s.swap(s2)						: s와 s2를 swap
  • 연산자
s[i]			: i번째 위치의 문자
s += s2			: s와 s2의 합을 s에 할당
s + s2			: s와 s2를 합한 새로운 string 객체
s = s2			: s에 s2를 할당
out << s		: s를 스트림에 씀
in >> s			: 스트림에서 s로 읽음
getline(in,s)	: 스트림에서 s로 한줄을 읽음
그외 비교 연산		: ==, !=, <, <=, >, >=

0개의 댓글