반응형
1. 크기 & 용량 관련
- size() / length() → 문자열 길이
- capacity() → 현재 할당된 내부 버퍼 용량
- reserve(n) → 최소 n 문자 저장할 수 있도록 용량 확보
- shrink_to_fit() → 사용하지 않는 용량을 줄임
- empty() → 문자열이 비었는지 확인
- max_size() → string이 담을 수 있는 최대 크기
2. 접근 관련
- operator[] → 인덱스로 문자 접근 (s[0])
- at(pos) → 범위 체크 후 문자 접근 (예외 발생 가능)
- front() → 첫 번째 문자
- back() → 마지막 문자
- data() → 내부 버퍼 포인터 반환
- c_str() → C 스타일 문자열(const char*) 반환
3. 수정 관련
- clear() → 문자열 비움
- insert(pos, str) → 문자열 삽입
- erase(pos, count) → 부분 삭제
- append(str) → 문자열 뒤에 추가
- push_back(ch) → 한 문자 추가
- pop_back() → 마지막 문자 제거
- replace(pos, count, str) → 부분 치환
- swap(str) → 다른 문자열과 교환
4. 검색 관련
- find(str, pos) → 문자열에서 부분 문자열 검색
- rfind(str, pos) → 뒤에서부터 검색
- find_first_of(str) → 지정된 문자 집합 중 첫 번째 등장 위치
- find_last_of(str) → 지정된 문자 집합 중 마지막 등장 위치
- find_first_not_of(str) → 지정된 집합이 아닌 첫 위치
- find_last_not_of(str) → 지정된 집합이 아닌 마지막 위치
5. 부분 문자열 관련
6. 비교 관련
7. 반복자 관련
- begin() / end() → 순방향 반복자
- rbegin() / rend() → 역방향 반복자
- cbegin() / cend() → const 순방향 반복자
- crbegin() / crend() → const 역방향 반복자
요약
- 크기/용량 관리: size, capacity, reserve
- 접근: operator[], at, front, back, data, c_str
- 수정: insert, erase, append, push_back, pop_back, replace, swap
- 검색: find, rfind, find_first_of …
- 부분 문자열: substr
- 비교: compare
- 반복자: begin, end, rbegin, rend
추가 사항
append / push_back
append / push_back 같은 경우 ' + ' 를 통해서도 뒤에 붙일수 있다. 두 방법 중 편한 방법으로 하면 된다.
string a = "123";
cout << a << '\n'; // 123
a += "45";
cout << a << '\n'; // 12345
a += "6";
cout << a << '\n'; // 123456
string b = "789";
a += b;
cout << a << '\n'; // 123456789
swap
swap을 대입(=)으로 대체할 수 있다.
string a = "123";
string b = "456";
cout << a << '\n'; // 123
a = b;
cout << a << '\n'; // 456
하지만
대입(=)의 경우
b의 내용을 a에 새로 복사해서 대입하기 때문에 b의 길이에 비례한 비용이 발생한다. (O(N))
swap의 경우
내부 포인터와 크기 등 메타데이터만 교환하기 때문에 실제 데이터를 복사하지 않아 매우 빠르다. (O(1))
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
| C++ struct와 class의 차이 (0) | 2025.10.04 |
|---|---|
| C++ string compare 사용법 (0) | 2025.10.01 |
| C++ <iomanip> 포맷 제어 도구 (0) | 2025.10.01 |
| C++ ostringstream string 버퍼를 이용한 출력 (0) | 2025.10.01 |
| C++ to_string 숫자 -> 문자열 변환 함수 (0) | 2025.10.01 |
댓글