2022. 12. 6. 17:14ㆍ자료구조
1. 정적 배열
장점: 한번 할당하면, 메모리를 추가적으로 할당하거나 해제하지 않아도 됨
특정 위치의 데이터에 접근하는 속도가 빠름
단점: 크기가 고정되어 있어, 필요에 따라 조절 불가
일반적으로 스택 영역에 할당되기 때문에, 최대 크기 제약
<array 컨테이너>

-멤버 함수들
reverse_iterator rbegin() //배열을 역으로 했을 때, 그 첫번째 원소를 가리키는 역방향 반복자 반환
쉽게 말해서 맨뒤의 원소 가리킴
reverse_iterator rend() //이건 역으로 했을 때 마지막 원소--> 첫번째 원소at(n) //배열의 n번째 원소 반환
value_type* data() //배열을 포인터 타입으로 반환(배열의 첫번째 주소를 반환)
fill(const value_type& val)// 배열의 모든 원소를 val로 변경
swap(array& arr) //배열의 모든 원소를 배열 arr과 교환
2. 동적 배열
장점: 필요에 따라 배열의 크기 조절 가능
단점: 메모리를 추가적으로 할당하기 때문에, 부가적인 연산이 추가됨
<vector 컨테이너>

-멤버 함수들
resize(size_type n); //배열의 크기를 n으로 변경-크기가 증가하는 경우, 추가된 원소를 0으로 초기화
크기가 감소하는 경우, 기존의 원소는 유지
shrink_to_fit(); //배열의 용량을 크기에 맞춰 감소
size(); //배열의 크기를 반환
capacity(); //배열의 용량을 반환(배열에 담겨있는 원소의 개수)
assign(size_type n, const value_type& val); //배열을 n개 원소와 val 값으로 새로 할당
iterator insert(const_iterator position, const value_type& val); //배열의 지정한 위치에 val 추가하고
그 위치를 가리키는 반복자 반환
iterator erase (const_iterator position); //배열의 지정한 위치의 원소 삭제하고, 그 위치를 가리키는 반복자 반환
clear(); //배열의 모든 원소 삭제
swap(vector& v); //배열의 모든 원소를 배열 v와 교환
3. 문자열
문자의 순차 수열을 나타내는 자료구조
- 바이너리 스트링: 텍스트로 표시되지 않아도 되는 문자열
- 널 스트링: 아무것도 저장되어 있지 않은 문자열
- 문자열 리터럴: 접두사가 없는 큰따옴표로 구분하는 문자열
<string 컨테이너>

-멤버 함수들
resize(size_type n); //문자열의 크기를 n으로 변경하고, 크기가 증가하는 경우 추가된 원소를 '\0'으로 초기화
크기가 감소하는 경우 기존의 원소는 유지
assign(const string& str); //문자열을 str로 대체하고, 그 문자열을 반환
append(const string& str); //문자열 뒤에 str 추가하고, 그 문자열 반환
replace(size_t pos, size_t len, const string& str); //배열의 지정한 위치부터 len만큼의 문자를 str로 대체하고,
그 문자열 반환
insert( size_t pos,const string& str); //문자열의 지정한 위치에서 str을 추가하고, 그 문자열 반환
erase(size_t pos,size_t len); //문자열의 지정한 위치에서 len만큼 문자를 삭제하고, 그 문자열 반환
c_str(); //문자열을 c 스타일의 char 형 배열로 변환하여 반환
size_t copy(char * str, size_t len, size_t index=0) const;
//문자열에 지정한 위치(index)에서 len만큼의 문자를 c스타일의 char형 배열 str로 복사하고, 복사된 크기를 반환,
위치를 정하지 않으면 디폴트 값 0(맨 처음부터)
size_t find(const string& str, size_t pos) const;
//문자열에서 지정한 위치 이후에 ,문자열 str과 일치하는 문자열의 시작 위치 반환
일치하는 문자열이 없는 경우 string::npos 를 반환
int compare(const string& str) const; //문자열과 문자열 str을 비교하고, 그 결과를 반환-일치하는 경우 0 반환
일치하지 않는 경우 0이 아닌 값 반환
string substr(size_t pos, size_t len=pos); //문자열의 지정한 위치에서 len만큼의 일부 문자열을 반환,
길이를 정하지 않으면 디폴트 값은 pos크기 만큼 문자열 반환
**배열을 resize 함수로 크기를 조절해도 capacity의 크기는 변하지 않음**