#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
vector<vector<int>> number;
vector<pair<int, int>> number2;
vector<tuple<int, int, int>> number3;
vector<int> number4[3];
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
int x, y;
cin >> x >> y;
number.push_back({ x, y });
number2.push_back({ x, y });
number3.push_back({ x, y, y });
}
for (int i = 0; i < N; i++)
{
cout << number[i][0] << " " << number[i][1] << "\n"; //vector
cout << number2[i].first << " " << number2[i].second << "\n"; //pair
cout << get<0>(number3[i]) << " " << get<1>(number3[i])
<< " " << get<2>(number3[i]) << "\n"; //tuple
}
//------------------
number4[0].push_back(0);
number4[0].push_back(1);
number4[1].push_back(1);
number4[2].push_back(2);
cout << number4[0][0] << "\n";
cout << number4[0][1] << "\n";
cout << number4[1][0] << "\n";
cout << number4[2][0] << "\n";
}
1. vector 안의 vector는 2차원 배열과 같고 두번째 배열이 0과 1로 나타낸다.
- push_back()에 { 1, 2, 3, 4, ...} 이런 식으로 더 넣을 수는 있으나 한번 넣을 때 다 넣어야함
[0][0], [0][1], [0][2]같이 0번째에 저 값들의 개수만큼 생성된다.
- 나중에 push_back으로는 0번째에 추가할 수 없다.
2. vector 안의 pair는 [i].first와 [i].second로 나뉜다.
- pair는 두 개만 생성 가능하다.
3. vector 안의 tuple은 get<0>(number3[i]) ... 으로 된다.
- tuple은 선언 시에 자료형을 선언한 만큼 개수가 정해진다.
- get<숫자> 여기의 숫자는 넣은 자료형의 숫자다 int, long, string이면 0 = int, 1 = long, 2 = string인셈
4. 변수명에 배열을 선언 시에는 자유롭게 원하는 번째에서도 넣을 수 있다.
- 다만 배열의 개수를 정해줘야 한다.
pair에 대해서 잘 몰라서 vector 안에서는 어떻게 되나 궁금했는데 역시 직접 쳐봐야 알게 되는 것 같다.
'C++ > Basic' 카테고리의 다른 글
구조체(struct) (0) | 2021.02.22 |
---|---|
포인터 (0) | 2021.02.22 |
char, string (0) | 2021.02.22 |
상수(const) (0) | 2020.11.04 |
공용체(union), 열거체(enum) (0) | 2020.10.16 |