string str;
str.at(i); #i 위치의 문자 (유효한 범위인지 체크 O)
str[i]; #i 위치의 문자(유효한 범위인지 체크 X. at 함수보다 접근 빠름)
str.front(); #문자열의 맨 앞 문자
str.back(); #문자열의 맨 뒤 문자
str.length();
str.size(); #문자열 길이
str.capacity(); #문자열이 사용중인 메모리 크기
str.resize(n); #문자열의 크기를 n으로 조정
str.resize(n, 'a'); #n이 문자열의 길이보다 크다면, 빈 공간을 'a'로 채움
str.shrink_to_fit(); #문자열이 사용중인 메모리 크기 > 실제 사용하는 메모리 -> 낭비되는 메모리가 없도록 메모리를 줄여줌
str.reserve(n); #크기가 n인 메모리를 미리 할당
str.empty(); #빈 문자열인가 ?
str.append(str2); #str+str2
str.append(str2, n, m); str+(str2[n]부터 m개의 문자)
str.append(n, 'a'); #str+('a' n개)
str.insert(n, str2); #str[n] 앞에 str2 삽입
str.replace(n, k, str2); #str[n]부터 k개의 문자를 str2로 대체
str.clear();
str.erase(); #문자열 모두 삭제
str.erase(n, m); #str[n]부터 m개의 문자 삭제
str.push_back(c); #str+c
str.pop_back(); #str의 맨 뒤의 문자 삭제
str.assign(str2); #str=str2
str.find("love") #str에서 찾은 "love"의 index
str.find("love", n); #str[n]부터 "love" 찾음
str.substr(); #return str
str.substr(n); #str[n]부터의 문자를 부분문자열로 반환
str.substr(n, k); #str[n]부터 k개의 문자를 부분문자열로 반환
str.compare(str2); #str==str2? -> 0, str<str2 -> 음수, str>str2 -> 양수
swap(str1, str2); #str1, str2 교환
isdigit(c); #c 문자가 숫자 -> true, 아니면 false
isalpha(c); #c 문자가 영어 -> true, 아니면 false
toupper(c); #c 문자를 대문자로 변환
tolower(c); #c 문자를 소문자로 변환
v.begin() : 벡터의 첫번째 원소를 가리키는 iterator
v.end() : 벡터의 마지막 원소 다음을 가리키는 iterator
v.assign(5) : 원소 5개 0으로 초기화
v.assign(5,10) : 원소 5개 10으로 초기화
v.front() : 첫 번째 원소
v.back() : 마지막 원소
v.at(i) : i번째 원소
v.push_back('a') : 마지막 원소 뒤에 ‘a’ 삽입
v.pop_back() : 마지막 원소 삭제
v.insert(v.begin(), 'a') : 벡터의 처음에 (iterator가 가리키는 위치에) ‘a’ 추가
v.empty(); #빈 벡터인가 ?
v.size() : 원소 수
v.capacity() : 할당된 메모리 크기
v.reserve(n) : 메모리 공간 크기를 n으로 변경. 늘어난 공간은 비어 있음
v.resize(n) : 메모리 공간 크기를 n으로 변경. 늘어난 공간은 0으로 초기화
v.clear() : 전체 원소 삭제
v.erase(v.begin()) : iterator가 가리키는 원소 삭제. size만 변함.