배열

2022. 12. 6. 17:14자료구조

728x90

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의 크기는 변하지 않음**

728x90

'자료구조' 카테고리의 다른 글

serching  (0) 2022.12.13
Graph  (2) 2022.12.06
스택과 큐  (1) 2022.12.06
연결 리스트  (0) 2022.12.06
Graph Traversals(그래프 순회)  (2) 2022.12.06