String컨테이너는 STL에는 포함되지 않지만 유사 컨테이너로 알아두면 좋음
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로 한줄을 읽음
그외 비교 연산 : ==, !=, <, <=, >, >=