[C++] Vector와 Pair

Chan_hee·2023년 6월 30일
post-thumbnail

1. Vector란?

동적 배열의 구조를 C++언어에 맞게 구현한것이다. 큐의 형태와 유사하게 맨 끝 인덱스에서 삽입과 삭제가 발생한다. insert와 erase를 활용하여 중간 삽입 및 삭제도 가능하긴하다. 일반배열과 다르게 자동으로 배열의 크기를 조정할 수 있고 유연하게 유동적으로 객체의 추가 및 삭제가 가능하다. STL 내장 라이브러리이고 template형태로 구성되어 타입에 상관없이 활용 가능하다.

2. Vector의 선언

우선 Vector STL을 사용하기 위해 헤더파일을 소스파일에 포함시켜주어야한다.

#include <vector>

(1)일반적인 선언은 다음 vector<각 요소의 데이터 타입> 벡터의 이름;으로 선언한다.

vector<int> v;

(2) vector의 크기를 정하고 싶은경우 다음과 같이 선언한다.

vector<int> v(10);

(3) vector의 크기를 정하고 데이터를 초기화할 경우 다음과 같이 선언한다.

vector<int> v(10,1); //벡터의 크기를 10으로하고 1로 초기화한다.

3. Vector의 사용

(1) v[idx], v.at(idx)
vector의 idx인덱스에 위치한 요소에 접근한다.
(2) v.front(),v.back()
vector의 처음,마지막 요소를 참조한다.
(3) v.begin(),v.end()
iterator로 접근시 각각 vector의 맨처음 위치 혹은 맨 마지막의 다음 위치를 가르킨다.
(4) v.push_back(data), v.pop_back()
vector의 맨 마지막에 데이터를 삽입하거나 삭제한다.
(5) v.insert(idx,data)
vector의 idx위치에 데이터를 삽입한다.
(6) v.erase(iter)
vector의 iter가 가리키는 위치의 데이터를 삭제한다.
(7) v.size(), v.empty()
vector의 원소갯수를 반환하고 비어있는지 확인하는 함수이다.

4. Pair 클래스란?

데이터를 쌍으로 한꺼번에 같이 저장하고 싶을때 사용한다. 주로 vector와 같이 활용된다. pair클래스를 사용하기 위한 헤더파일은 <utility>에 존재하지만 <vector>헤더파일이 <utility>를 포함하고 있기에 #include <vector>만 해주어도 pair클래스 사용이 가능한다.

(1)Pair 클래스 활용한 vector 선언

vector<pair<int,int>> v;

(2)Pair 클래스 활용한 vector에 데이터 삽입

v.push_back(make_pair(3,4));

0개의 댓글