본문 바로가기

코딩 공부/C++

c++ 6주차

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