[C++] Vector Container
학교에서 '알고리즘 분석'이라는 강의를 수강 중인데, 언어로 c++를 사용한다. 파이썬으로 알고리즘 문제를 풀던 나는 c++ 가 아직 익숙하지 않아서 c++ 언어를 공부하고 공부한 내용을 여기다가 정리하려고 한다.
Vector Container란
C++ STL(Standerd Template Library)의 sequence container.
자동으로 메모리가 할당되는 배열이라고 생각하면 된다.
속도적인 측면에서는 배열에 비해 성능이 떨어지지만, 효율적 관리와 예외처리가 쉽다는 장점이 있다. 그래서 알고리즘 해결 문제에서는 굉장히 많이 쓰이는 듯.
사용법
// 헤더파일을 추가해야 한다.
#include <vector>
vector <int> v; // 선언은 vector <data type> 변수이름
생성자와 연산자
vector<int> v;
// 비어있는 벡터 생성.
vector<int> v(n);
// 0으로 초기화된 n개의 원소를 가지는 벡터 생성
vector<int> v = {1, 2, 3} // 이렇게도 초기화가 가능
vector<int> v2(v1); # v1벡터를 복사해 v2벡터를 생성.
멤버 함수
-
v.begin() : 벡터의 시작 주소 반환
-
v.end() : 벡터의 (끝부분 + 1) 주소 반환
-
v.at(i) : 벡터의 i번째 요소(범위 검사 o)
-
v[i] : 벡터의 i번째 요소 ( 범위 검사 x ). 이게 훨씬 효율적. 권장함.
-
v.push_back() : 벡터의 마지막 부분에 새로운 요소 추가
-
v.pop_back() : 벡터의 마지막 부분 제거
-
v.size() : 원소의 갯수를 리턴
-
v.capacity() : 할당된 메모리의 크기 리턴. 비트값처럼 2의 지수값으로 증가한다. (1, 2, 4, 8, 16....)
속성으로 알아보면 이정도..?
나머지는 사용하면서 감을 익혀보도록 하자.
참고 문서
벡터 컨테이너 사용 방법 - 개발자 지망생
벡터 사용법 - 환쉘
Author And Source
이 문제에 관하여([C++] Vector Container), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sossont/C-Vector-Container저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)