Vector란?
C++ 표준라이브러리(Standard Template Library)에 있는 컨테이너
크기가 바뀔 수 있는 배열을 나타내는 시퀀스 컨테이너이다.
동적으로 할당 된 배열을 사용하여 요소 저장이 가능하다.
동적으로 크기가 변하고 메모리가 연속적이기 때문에 자동으로 배열의 크기를 조절 할 수 있고 객체의 추가/삭제가 유연하게 가능하다.
다맨 끝에서만 삽입/삭제가 가능하다. 배열 기반이기 때문에 삽입 삭제가 빈번히 일어날 경우엔 비효율 적이다
각종 선언방법
#include <vector>
/*vector <데이터 타입> 이름 ; 으로 vector을 선언*/
vector <string> v_string;
vector <int> v_int;
vector <int> v_int10(10); //크기를 지정하는 경우
vector<int> v_int1(10,1); //크기 10의 벡터에 1로 초기화하고 싶은 경우
vector<int> v3(v_int1); // v3는 v_int를 복사해서 생성한다.
Vector의 멤버 함수
vector<int> v;
v.assign(5, 2); // 2의 값으로 5개의 원소 할당.
v.at(idx); // idx 번째 원소 참조(범위를 점검)
v[idx]; // idx 번째 원소를 참조(범위를 점검하지 않음)
v.front(); // 첫번째 원소를 참조
v.back(); // 마지막 원소를 참조
v.begin() // iterator로 접근 시 vector의 맨 첫번째 원소를 가르킴
v.end() // iterator로 접근 시 vector의 맨 마지막 원소의 다음을 가르킴
v.clear(); // 모든 원소를 제거 원소만 제거하고 메모리는 남아있다. (size만 줄어들고 capacity는 그대로)
v.push_back(7); // 마지막 원소 뒤에 원소 7을 삽입
v.pop_back(); // 마지막 원소를 제거
v.insert(3, 4); // 원하는위치(3)에 데이터(4)를 삽입하고 싶은ㄱㅇ우
v.erase(iter) // iter(반복자)가 가리키는 원소를 제거
/*
auto iter = v.begin(); // v.begin() 위치의 데이터를 삭제하고 싶다
v.erase(iter);
*/
v.size() // 현재 벡터 v의 원소 갯수(크기)를 리턴
v.capacity() // 할당된 벡터의 원소 갯수(크기)를 리턴
v.resize(n) , v.resize(n,10)
v.resize(n) // 벡터를 원래 크기에서 N 크기로 변경
v.resize(n,10) // 벡터를 크기 N으로 변경하며 데이터를 10으로 초기화합니다.
v.empty() // 벡터 v가 비어있는 지 확인합니다. 비어있는 경우 True 를 리턴, 비어있지 않을 경우 False를 리턴
https://life-with-coding.tistory.com/411
https://m.cplusplus.com/reference/vector/vector/
'코딩 > C++' 카테고리의 다른 글
scanf_s로 배열 문자열을 입력 (0) | 2021.11.26 |
---|---|
Visual Studio 1개의 확인할 수 없는 외부 참조 입니다.(미해결) (0) | 2021.11.26 |