C++의 다차원 벡터

Naila Saad Siddiqui 2024년2월15일
C++의 다차원 벡터

이 간단한 프로그래밍 자습서는 C++의 다차원 벡터 소개에 관한 것입니다. 벡터는 자동 크기 조정 기능이 있는 C++의 동적 배열과 같은 데이터를 저장할 수 있는 컨테이너입니다.

C++의 다차원 벡터

C++ 다차원 벡터라는 추상 데이터 구조는 여러 C++ 구성 요소를 사용하여 만들 수 있지만 이 자습서에서는 주로 표준 템플릿 라이브러리 std::vector 컨테이너 구현을 살펴봅니다. std::vector 클래스의 일부 메서드를 사용하여 다차원 벡터에 대한 작업을 단순화합니다.

C++에서 2D 벡터 선언 및 초기화

다른 벡터의 템플릿 매개변수 내에 벡터 지정자를 배치하여 2차원 벡터를 지정할 수 있습니다.

요소 데이터 유형에는 내부 벡터만 설정된다는 점을 기억하십시오. 행렬을 표현하고 2차원 벡터를 사용하여 관련 연산을 수행할 수 있습니다.

다음 코드 샘플은 2차원 벡터의 정의 및 목록 초기화를 보여줍니다.

우리는 임의의 정수 멤버를 가진 2차원 벡터를 정의하기로 결정했습니다. 다음 샘플 코드에는 mat1, mat2mat3 레이블이 있는 세 개의 벡터가 있습니다.

보시다시피 모든 사람이 각 행에 같은 수의 요소를 가지는 것은 아닙니다. 마지막으로 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++ 2D 벡터 출력

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;
}

그러면 다음과 같은 결과가 나타납니다.

C++ 3D 벡터 출력

따라서 벡터는 배열처럼 작동하지만 메모리와 시간 측면에서 작동하고 사용하는 것이 더 효율적이라고 말할 수 있습니다.

관련 문장 - C++ Vector