C++ 벡터 사용법
안녕하세요 열코입니다.
C++에서 벡터는 표준 템플릿 라이브러리(STL)에서 제공하는 동적 배열구조 클래스입니다.
C의 배열처럼 빠른 랜덤 접근이 가능하며 자동으로 배열의 크기 조절과 추가 삭제가 가능합니다.
모든 자료형에 대해 배열처럼 저장할 수 있지만 한번에 한 타입만 저장이 가능합니다.
자바의 벡터와 마찬가지로 배열 크기를 추가할때 기존 배열 크기의 100%가 늘어납니다.(2배)
먼저 벡터를 선언하는 방법에 대해 알아보겠습니다.
vector<int> integer_vector;
vector<double> double_vector;
vector<char> char_vector;
벡터 클래스는 C++ 모든 자료형의 저장을 지원하며 위 코드와 같이 만들수 있습니다.
벡터에서의 데이터 추가 및 삭제는 배열의 끝에서 O(1), 배열의 중간 O(n)만큼의 시간복잡도가 소요됩니다.
벡터에 데이터 추가하기
for (int i = 0; i < 5; i++) {
integer_vector.push_back(i);
double_vector.push_back((double)i);
char_vector.push_back('a' + i);
}
벡터 클래스에서 push_back() 함수를 이용하여 요소의 끝에 데이터를 추가할 수 있습니다.
지정된 위치에 요소를 추가하려면 insert() 함수를 사용하세요.
벡터의 데이터 삭제하기
integer_vector.pop_back(); // 요소 끝의 데이터 삭제
double_vector.erase(double_vector.begin()); // 지정된 위치의 데이터 삭제
char_vector.clear(); // 모든 데이터 삭제
벡터는 다음과 같은 내부 함수가 존재합니다.
begin() - 벡터의 첫번째 요소를 가리킵니다.
end() - 벡터의 마지막 요소를 가리킵니다.
size() - 벡터의 요소 수(크기)를 반환합니다.
resize() - 벡터의 크기를 재조정합니다.
empty() - 벡터가 비어있는지 여부(true or false)를 반환합니다.
at() (또는 [ ]) - 벡터의 인덱스에 접근할 수 있습니다.
front() - 벡터의 첫번째 요소를 반환합니다.
back() - 벡터의 마지막 요소를 반환합니다.
data() - 포인터가 접근할 수 있도록 벡터의 주소값을 반환합니다( int *p = vector1.data() )
더 상세한 내용을 확인하고 싶다면 여기를 방문하세요.
[관련 게시글]
2018/09/25 - [Language/C] - C언어 포인터
2018/09/23 - [Language/Java] - 자바 벡터(Vector)와 어레이리스트(ArrayList) 비교
2018/09/16 - [Language/Python] - 파이썬 튜플(Tuple) 사용법
2018/09/14 - [Language/Python] - 파이썬 리스트 사용법
2018/09/06 - [Language/Java] - 자바 배열 사용법
이상 'C++ 벡터'에 대해 알아보았습니다.
질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!
공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.
'C, C++' 카테고리의 다른 글
C++ 클래스와 객체 (0) | 2018.10.09 |
---|---|
C/C++ 구조체 사용법 및 예제 (1) | 2018.10.08 |
C/C++ 배열 사용법 (0) | 2018.10.05 |
C 파일처리 (0) | 2018.10.02 |
C언어 포인터 (8) | 2018.09.25 |
C++ 자바 상속 비교 (0) | 2018.09.08 |
C 랜덤 - 난수 생성하기 (7) | 2018.09.06 |
C++ String 문자열 사용법 정리 (0) | 2018.08.20 |