1. define 1 dementional vector
method 1
vector<int> vec;
vector<[자료형]> [변수이름] 형태로 선언한다.
method 2
vector<int> vec(10,8);
vector<[자료형]> [변수이름] ([원소 개수],[들어갈 원소]) 순으로 선언할 수도 있다.
예시 코드는 8이 10개 만들어진다.
method 3
vector <int> vec{10, 20, 30, 40};
특정한 자료형을 넣고 싶을땐 다음과 같이 선언할 수도 있다.
2. define 2 dementional vector
method 1
vector<vector<int>> vec(2, vector<int>(3));
vector<vector<[자료형]>> [변수이름]([행 개수], vector<자료형>[열 개수])
예시 코드는 2행 3열짜리 벡터가 만들어진다.
method 2
using Matrix = vector<vector<int>>;
Matrix vec(2, vector<int>(3));
vector을 여러개 생성해야 하면 Matrix 라는 컴포넌트를 만들어 사용할 수도 있다.
3. define 1 dementional array
method 1
int arr[5];
method 2 - dynamic allocation
cin >> n;
int *arr = new int[n];
delete [] arr;
array와 vector의 가장 큰 차이는 아무래도 함수같다.
vector는 push_back와 같은 함수가 잘 구현되어 있어 동적 할당을 자유자재로 할 수 있다.
그러나 array는 동적 할당을 하기 위해선 new를 선언해주어야 한다.
4. define 2 dementional array
method 1
const int row = 3, col = 5;
using Matrix = int[row][col];
Matrix arr;
3행 5열의 array가 만들어진다.
method 2 - dynamic allocation
int n;
cin >> n;
int **arr = new int* [n];
for (int i = 0; i < n; i++){
arr[i] = new int[n];
}
for (int i = 0; i < n; i++){
delete [] arr[i];
}
delete [] arr;
"pointer의 pointer"을 이용해서 동적 행렬을 생성할 수도 있다.
**arr에는 n개의 포인터가 담기는 array의 주소가 생성된다.
그리고 arr[i]에는 i번째 행의 pointer 주소가 입력이 된다.
'C++' 카테고리의 다른 글
[Data Structure] Reviewing Up wrong C++ codes 2 (0) | 2024.11.30 |
---|---|
[Data Structure] 중간고사 정리 (2) | 2024.10.20 |
[Data Structure] Reviewing Up wrong C++ codes (1) | 2024.10.04 |
[C++] 기말고사 공부 로그 (0) | 2024.05.20 |
[C++]중간고사 공부 로그 (0) | 2024.03.15 |