배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조이다.
배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다.
리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조이다.
vector는 C++ 표준 라이브러리에 있는 자료구조 컨테이너 중 하나로, 사용자가 손쉽게 사용하기 위해 정의된 클래스이다.
기존의 배열과 같은 특징을 가지면서 배열의 단점을 보완한 동적 배열의 형태라고 생각하면 된다.
// 선언
vector<int> A;
// 생성
vector<int> first; // 빈 벡터
vector<int> second(4, 100); // 100이 4개인 벡터
vector<int> third(second.begin(), second.end()); // second 탐색해서 카피
vector<int> fourth(third); // third의 카피
// 배열로부터 생성
int myints[] = {16,2,77,29};
vector<int> fifth(myints, myints + sizeof(myints) / sizeof(int) );
// 삽입 연산
A.push_back(1); // 마지막에 1 추가
A.insert(A.begin(), 7); // 맨 앞에 7을 삽입
A.insert(A.begin() + 2, 10); // 인덱스 2위치에 10 삽입
// 값 변경
A[4] = -5;
// 삭제 연산
A.pop_back(); // 마지막 값 삭제
A.erase(A.begin() + 3); // 인덱스 3에 해당하는 값 삭제
A.claer(); // 모든 값 삭제
// 정보 가져오기
A.size(); // 데이터 개수
A.front(); // 처음 값
A.back(); // 마지막 값
A[3]; // 인덱스 3에 해당하는 값
A.at(5); // 인덱스 5에 해당하는 값
A.begin(); // 첫 번째 데이터 위치
A.end(); // 마지막 데이터 다음 위치