벡터란 크기조절이 동적으로 가능한 배열과 같다.
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector <int> myArray(10);
// 벡터 선언 : myArray라는 벡터의 크기는 10
// myArray[0]=1;
// myArray[1]=2;
// myArray[2]=3;
// myArray[0] = 3;
// myArray[1] = 2;
// myArray[8] = 4;
// 이런식으로 값을 넣어줄수도 있으나
for(int i=0;i<10;i++){
myArray[i] = i;
}
myArray.push_back(10);
// 제일 마지막에 10을 삽입하라는 뜻으로 이렇게 데이터를 대입할 수 있음.
// 이렇듯 배열과 다르게 벡터는 크기 조절이 되어서 처음 선언한 크기가 아니어도 데이터를 삽입하고 또 삭제할 수 있다.
for(int i=0;i<11;i++){
printf("%d ",myArray[i]);
}
return 0;
}
vector myArray(10);
벡터 선언
하지만 선언과 동시에 원소를 지정해줄 수도있다
vector myArray(10,3);
3으로 다 세팅된 것
기본적으로 메소드는 4가지정도 있는데
.push_back(x)
-> 해당벡터(벡터는 자료구조이고 클래스이고 구조체같은것임)에 마지막 -> x값을 넣어준다
.pop_back() -> 끝에서 뺀다
.resize(x) -> 크기 x로 바꿔라
.size() -> 현재 크기가 몇이냐
vector myArray();
크기를 모르는 벡터를 선언한다.
이 벡터는 아무것도 없는 상태이다
myArray.push_back(1);
myArray.push_back(2);
myArray.push_back(3);
맨 끝에다가 1, 2, 3 을 push_back을 해주면
새로운 공간 인 3개의 공간이 생기는 것임.
내가 공간을 조정할 수 있다는 뜻 . 진짜 필요한만큼만 공간을 사용할 수 있음
myArray.pop_back();
공간이 2가된다
myArray.pop_back();
공간이 1이된다 (데이터도 함께 삭제됨)
myArray.resize(5);
1이었던 벡터의 공간이 5개가 된다. (네개가 더생김)
myArray.resize(5,3);
5개의 공간이 되면서 나머지 4개를 추가한 빈 공간에 3으로 세팅한다.
myArray.size();
사이즈를 반환하는데
현재 5공간을 가지고 있기 때문에 5 반환해준다.
.insert
.erase 같은것도 있음