-
[C++/STL]VectorComputerScience/STL 2020. 5. 21. 01:28
C/C++의 배열을 동적으로 사용할 수 있는 형태의 Container
(전공 프로젝트 중 처음 알게 됐고 매우 편하다)
#include <vector> using namespace std;
위와 같이 라이브러리를 import 해줘야 사용할 수 있다.
거의 코테할 때 기본적으로 import해주는 편
또한 vector를 사용할 때, std::를 일일히 써줄 필요 없이
using namespace std; 를 선언하면 된다.
vector <[data type]>v; vector <int>v; vector <int>v(n); vector <int>v(n,a); vector <int>v1(v2);
생성은 다음과 같다.
vector <[data type]>v;
data type을 가진 vector를 만들어준다. 보통은 int를 많이 쓰는 편임
편의를 위해 int형으로 선언하겠습니다.
vector <int>v;
와 같이 선언하면 크기가 아직 잡히지 않은 vector가 만들어진다.
vector <int>v(n);
와 같이 선언하면 크기가 n이고 값이 0으로 초기화 된 vector가 만들어진다.(C/C++에서 배열을 0으로 초기화하기 위해 전역변수에 선언하는 방식을 취하지 않아도 됨)
vector <int>v(n,a);
와 같이 선언하면 크기가 n이고 a로 초기화된 vector가 만들어진다.
vector <int>v1(v2);
와 같이 선언하면 v2 vector를 v1에 복사해서 만들어진다.
vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3);
위 코드를 통해 만들어진 벡터의 구조는 다음과 같다.
v.push_back() 함수를 통해 뒤쪽에 원하는 값을 넣어줄 수 있다.(stack의 push와 유사)
v.front() v.back()
또한 v.front()와 v.back()를 통해 vector의 맨 앞의 원소와 맨 뒤 원소값을 확인할 수 있다.
(v.begin()과 v.end()와 헷갈리지 말것 -> 추후 설명)
'ComputerScience > STL' 카테고리의 다른 글
[C++] fill 함수 (0) 2020.07.23 [C++/STL] set은 무엇인가? [중복제거용, 존재체크용] (0) 2020.05.27 [C++/priority_queue/operator overloading] 우선순위 큐 struct 연산자 오버로딩 (2) 2020.05.24 C++/연산자 오버로딩/operatior overloading (0) 2020.05.24