[C++ STL] std::vector 사용법과 동작방식
2022. 5. 15. 17:51
std::vector 란?
C++에서 C 스타일 배열을 대체하는 가변 크기 컨테이너
- 초기화 과정에서 데이터의 크기를 지정하지 않아도 됨
- 배열의 크기를 확장할 수 있음
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 벡터 생성
vector<int> v1; // int 값을 저장할 비어 있는 벡터 생성
vector<int> v2(10); // int 값 10개를 저장할 벡터 생성하고 0으로 초기화
vector<int> v3(10, 1); // int 값 10개를 저장할 벡터 생성하고 1로 초기화
vector<int> v4 {10, 20, 30, 40, 50}; // 유니폼 초기화(uniform initialization)
vector<int> v5(v4); // v4를 복사하여 v5 생성
vector<int> v6(v4.begin(), v4.begin() + 3); // v4의 처음 3개 원소를 이용하여 v6 생성
// 벡터 원소 참조
for (int i = 0; i < v6.size(); i++)
cout << v6[i] << endl
// 정수형 2차원 배열. 2행 3열. 0으로 초기화.
vector<vector<int>> mat1(2, vector<int>(3, 0));
// 유니폼 초기화
vector<vector<int>> mat2 {{1, 2, 3}, {4, 5, 6}};
// 2차원 벡터 출력
for (int r = 0; r < mat2.size(); r++) {
for (int c = 0; c < mat2[r].size(); c++) {
cout << mat2[r][c] << " ";
}
cout << endl;
}
}
std::vector 주요 멤버 함수와 기능
참고) std::vector 의 push_back()은 저장공간을 1씩이 아니라 4씩 할당한다.
'Algorithm' 카테고리의 다른 글
[알고리즘] 기본적인 정렬 알고리즘(버블 정렬, 선택 정렬, 삽입 정렬) (0) | 2022.07.25 |
---|---|
[C++] 백준(BOJ)-15975번 화살표 그리기 (0) | 2022.07.15 |
[C++] 백준(BOJ) - 8892번 팰린드롬 (0) | 2022.02.28 |
[C++] 백준(BOJ) - 1448번 삼각형 만들기 (0) | 2022.02.28 |
[C++] 백준(BOJ) - 11055번 가장 큰 증가 부분 수열 (0) | 2022.02.27 |