vector , 크기가 바뀔 수 있는 배열
배열처럼 사용할 수 있지만 동적으로 원소를 추가할 수 있으며 필요한 경우 벡터의 크기가 자동으로 커질 수 있다
#include <vector>
vector<int> v; // vector<자료형> 변수명
vector<int> v = { 1, 2, 3 }; // vector<자료형> 변수명[] = {변수1, 변수2, 변수3 ...}
vector<int> v[10]; // 크기 10인 벡터 배열 생성
vector<int> v[] = { { 1, 2}, {3, 4} }; // int형 백터 배열 생성(행은 가변이지만 열은 고정)
vector<vector<int>> v; // 2차원 백터 생성(행과 열 모두 가변)
vector<int> v(5); // 5개의 원소를 0으로 초기화
vector<int> v(5, 3); // 5개의 원소를 3으로 초기화
vector<int> v2(v); // 벡터 v를 복사하여 벡터v2 생성
vector<int> v = { 1, 2, 3, 4, 5 };
v.assign(5, 10); // vector<자료형>변수명.assign(범위, 초기화할 값) // 10 10 10 10 10
front() : 첫 번째 원소
back() : 마지막 원소
begin() : 첫번째 위치
end() : 마지막의 다음 위치 (end + 1)
size() : 원소의 개수
capacity() : 할당된 공간의 크기
v.rbegin() (revers begin) | 백터의 끝 지점을 시작점으로 반환 |
v.rend() (revers end) | 백터의 (시작 + 1) 지점을 끝 부분으로 반환 |
v.push_back() | 백터의 마지막 부분에 새로운 요소 추가 |
v.pop_back() | 백터의 마지막 부분 제거 |
v.insert(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입 |
v.emplace(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입(move로 인해 복사생성자 X) |
v.emplace_back() | 백터의 마지막 부분에 새로운 요소 추가(move로 인해 복사생성자 X) |
v.erase(삭제할 위치) or v.erase(시작위치, 끝위치) | 사용자가 원하는 index값의 요소를 지운다. |
v.clear() | 백터의 모든 요소를 지운다.(return size = 0) |
v.resize(수정 값) | 백터의 사이즈를 조정한다.(범위 초과시 0으로 초기화) |
v.swap(백터 변수) | 백터와 백터를 스왑한다. |
v.at(i) | 백터의 i번째 요소 접근 (범위 검사함) |
v.[i] (operator []) | 백터의 i번째 요소 접근 (범위 검사 안함) |
v.front() | 백터의 첫번째 요소 접근 |
v.back() | 백터의 마지막 요소 접근 |
#include <vector>
long long sum(std::vector<int>& a) {
long long ans = 0;
for (int i = 0; i < a.size(); i++) {
ans += a.at(i);
}
return ans;
}
'코딩 공부 > C++' 카테고리의 다른 글
백준 10807번: 개수 세기 [C++] (1) | 2024.08.25 |
---|---|
백준 8958 C++ (0) | 2023.03.05 |
[C++] 10807번 (0) | 2022.12.17 |
C++ Chapter 7. 배열 (1) | 2022.12.13 |
C++ HW 및 Chapter 6 Check Point 정리 (0) | 2022.12.13 |