CS/C++

뇌를 자극하는 C++ STL : 12장. string 컨테이너

샤아이인 2022. 1. 18.

내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다.

1) 12장. string 컨테이너

string은 표준 라이브러리 이지만 STL에는 포함시키지 않는다. string은 문자만을 원소로 저장하고 문자열을 조작할 목적으로 만들어진 컨테이너 입니다.

 

string

다음 코드는 string의 생성자를 이용한 문자열 초기화 코드이다.

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string st("zbqmgldjfh");

	string s1;
	string s2("Hello!");
	string s3("Hello!", 3);
	string s4(3, 'e');
	string s5(st.begin(), st.end());

	cout << "s1 : " << s1 << endl;
	cout << "s2 : " << s2 << endl;
	cout << "s3 : " << s3 << endl;
	cout << "s4 : " << s4 << endl;
	cout << "s5 : " << s5 << endl;

	return 0;
}
 

결과는 다음과 같다.

string도 문자를 원소로 취하는 시퀀스 컨테이너이므로 반복자로 초기화 할 수 있습니다.

 

string의 주요 멤버 함수 정리

string은 임의 접근 반복자를 지원하며 컨테이너에 문자를 연속하게 저장합니다.

vector처럼 미리 충분한 메모리를 할당(reserve())받을 수 있고, capacity()로 할당된 메모리를 확인할 수 있습니다.

reserve를 사용하면 메모리 재할당후 복사하는 overhead를 줄일 수 있습니다.


 

2) 나의 현황

완독!! 하지만 뭐랄까 사용을 안해서 다시 머리에서 사라질것 같은 느낌?? 빨리 자료구조를 공부하면서 구현의 원리를 다시한번 복습해 본 후, 알고리즘을 공부하면서 STL을 재복습 해야겠다.

이글의 모든 사진과 내용의 출처는 공동환 님께 있습니다.

댓글