C++의 다차원 벡터
이 간단한 프로그래밍 자습서는 C++의 다차원 벡터 소개에 관한 것입니다. 벡터는 자동 크기 조정 기능이 있는 C++의 동적 배열과 같은 데이터를 저장할 수 있는 컨테이너입니다.
C++의 다차원 벡터
C++ 다차원 벡터라는 추상 데이터 구조는 여러 C++ 구성 요소를 사용하여 만들 수 있지만 이 자습서에서는 주로 표준 템플릿 라이브러리 std::vector
컨테이너 구현을 살펴봅니다. std::vector
클래스의 일부 메서드를 사용하여 다차원 벡터에 대한 작업을 단순화합니다.
C++에서 2D 벡터 선언 및 초기화
다른 벡터의 템플릿 매개변수 내에 벡터 지정자를 배치하여 2차원 벡터를 지정할 수 있습니다.
요소 데이터 유형에는 내부 벡터만 설정된다는 점을 기억하십시오. 행렬을 표현하고 2차원 벡터를 사용하여 관련 연산을 수행할 수 있습니다.
다음 코드 샘플은 2차원 벡터의 정의 및 목록 초기화를 보여줍니다.
우리는 임의의 정수 멤버를 가진 2차원 벡터를 정의하기로 결정했습니다. 다음 샘플 코드에는 mat1
, mat2
및 mat3
레이블이 있는 세 개의 벡터가 있습니다.
보시다시피 모든 사람이 각 행에 같은 수의 요소를 가지는 것은 아닙니다. 마지막으로 PrintMatrix
라는 도우미 함수를 사용하여 이러한 벡터의 데이터를 인쇄합니다.
#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;
void PrintMatrix(vector<vector<int>> vec) {
for (auto &item : vec) {
for (auto &elem : item) cout << elem << " ";
cout << endl;
}
cout << endl;
}
int main() {
vector<vector<int>> mat1 = {{0, 1, 2}, {3, 4, 5}, {6, 7}};
vector<vector<int>> mat2 = {{10, 9}, {8, 7, 6, 5}, {4, 3, 2}};
vector<vector<int>> mat3 = {{11, 12}, {13}, {14, 15, 16, 17, 18, 19}};
PrintMatrix(mat1);
PrintMatrix(mat2);
PrintMatrix(mat3);
return 0;
}
위의 코드 스니펫에서 세 벡터의 각 행에 대한 크기가 다른 것을 볼 수 있습니다. 이 크기는 초기화된 데이터에 따라 자동으로 조정됩니다.
코드는 다음과 같은 출력을 제공합니다.
C++에서 3D 벡터 선언 및 초기화
2D 벡터와 마찬가지로 3D 벡터는 벡터의 벡터
의 벡터입니다. 3차원 행렬과 같습니다.
구문은 아래 예와 같이 2D 벡터에서와 동일한 패턴을 따릅니다.
vector<vector<vector<int>>> threeDVector = {{{11, 12}, {12, 13}, {13, 14, 15}},
{{11, 12}, {12, 13}, {13, 14}},
{{11, 12}, {12, 13}, {13, 14}}};
for (int a = 0; a < threeDVector.size(); a++) {
for (int b = 0; b < threeDVector[a].size(); b++) {
for (int c = 0; c < threeDVector[a][b].size(); c++) {
cout << threeDVector[a][b][c] << " ";
}
cout << endl;
}
cout << endl;
}
그러면 다음과 같은 결과가 나타납니다.
따라서 벡터는 배열처럼 작동하지만 메모리와 시간 측면에서 작동하고 사용하는 것이 더 효율적이라고 말할 수 있습니다.