개요
참 많이 헷갈립니다.
vector <queue<int>>
자유롭게 추가/삭제 가능한 queue<int>의 집합입니다.
#1 예제 코드
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main() {
vector<queue<int>> vecOfQueues;
for (int i = 0; i < 3; ++i) {
queue<int> q;
for (int j = 1; j <= 5; ++j) {
q.push(i * 5 + j);
}
vecOfQueues.push_back(q);
}
return 0;
}
#2 예제 코드 도식화
위 예제 코드 실행 후 메모리에 저장되는 vector<queue<int>> 자료형 vecOfQueues는 다음과 같이 나타낼 수 있습니다.
+---+---+---+---+---+
| 1 | 2 | 3 | 4 | 5 | --> Queue 1
+---+---+---+---+---+
| 6 | 7 | 8 | 9 | 10| --> Queue 2
+---+---+---+---+---+
|11 |12 |13 |14 |15 | --> Queue 3
+---+---+---+---+---+
vector<queue<int>> vecOfQueues[1001]
#1 예제 코드
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main() {
vector<queue<int>> vecOfQueues[1001];
for (int i = 0; i < 3; ++i) {
queue<int> q;
for (int j = 1; j <= 5; ++j) {
q.push(i * 5 + j);
}
vecOfQueues[i].push_back(q);
}
return 0;
}
#2 예제 코드 도식화
이 벡터는 queue<int> 자료형을 자유롭게 추가/삭제할 수 있는 벡터 1001개를 가집니다.
vecOfQueues[1][0].front() 는 6이고, vecOfQueues[1][1].front(); 는 존재하지 않으므로 런타임 에러가 발생합니다. ( 예제 코드에서 각 벡터에 queue <int> 하나씩만을 넣었으므로 0번째 인덱스에만 queue <int> 가 존재 )
+--------------------------------------------------------------------------+
| |
| +------------------------+ +------------------------+ +------------------------+
| | vecOfQueues[0] | | vecOfQueues[1] | | vecOfQueues[2] |
| | | | | | |
| | +---+---+---+---+---+ | | +---+---+---+---+---+ | | +---+---+---+---+---+ |
| | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 |10 | | | |11 |12 |13 |14 |15 | |
| | +---+---+---+---+---+ | | +---+---+---+---+---+ | | +---+---+---+---+---+ |
| +------------------------+ +------------------------+ +------------------------+
| |
+--------------------------------------------------------------------------+
만약 vecOfQueues[1]에 모든 queue<int> 를 담은 경우 아래와 같게 될 수도 있겠죠?
+------------------------+
| vecOfQueues[1] |
| |
| +---+---+---+---+---+ |
| | 1 | 2 | 3 | 4 | 5 | |
| +---+---+---+---+---+ |
| | 6 | 7 | 8 | 9 |10 | |
| +---+---+---+---+---+ |
| |11 |12 |13 |14 |15 | |
| +---+---+---+---+---+ |
+------------------------+
vector<pair<int, int>>
자유롭게 추가/삭제 가능한 pair<int,int> 의 집합입니다.
#1 예제 코드
#include <iostream>
#include <vector>
#include <utility>
using namespace std;
int main() {
vector<pair<int, int>> vecOfPairs;
for (int i = 1; i <= 5; ++i) {
vecOfPairs.push_back(make_pair(i, i * i));
}
return 0;
}
#2 예제 코드 도식화
Pair 1: (1, 1)
Pair 2: (2, 4)
Pair 3: (3, 9)
Pair 4: (4, 16)
Pair 5: (5, 25)
'프로그래밍 > 기타 프로그래밍' 카테고리의 다른 글
[python] Firebase Admin SDK child path 활용 데이터 읽기 (0) | 2024.01.02 |
---|---|
[SAP/ABAP] EVENT DATA_CHANGED 활용하여 ALV 체크박스(checkbox) 클릭 시 바로 반영하기 (0) | 2023.12.14 |
[SAP/ABAP] RETURN과 EXIT의 차이 (0) | 2023.11.13 |
[SAP] client 입력 모드 변경 (insert / override) (0) | 2023.10.30 |
[SAP] 자주 사용하는 TCODE (1) | 2023.10.24 |