C++ 2차원 벡터 예시 1

오현진·2024년 6월 14일

C++ 

목록 보기
3/26

범위기반 for 문

for (declaration : range) {
    statement;
}
  • declaration: 각 반복 단계에서 사용될 변수의 선언입니다. 이 변수는 range의 각 요소를 가리킵니다.
  • range: 반복할 대상입니다. 이는 배열, std::vector와 같은 컨테이너, 문자열, 이니셜라이저 리스트 등이 될 수 있습니다.

2차원 벡터 array의 각 요소를 행과 열의 형태로 출력하는 예제

#include <iostream>
#include <vector>

int main() {
    std::vector<std::vector<int>> array = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    for (const auto& row : array) {
        for (int elem : row) {
            std::cout << elem << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}
1 2 3 4 
5 6 7 8 
9 10 11 12 

1. 첫번째 for 문

  • array는 2차원 벡터입니다. 즉, std::vector<std::vector<int>> 타입입니다.
  • const auto& rowarray의 각 요소를 가리킵니다. 여기서 auto는 자동 타입 추론을 사용하여 row의 타입을 const std::vector<int>&로 추론합니다.
  • const 키워드는 row를 상수로 선언하여 반복 과정에서 변경되지 않음을 보장합니다.
  • &는 참조자를 사용하여 실제 요소를 가리키도록 합니다. 이렇게 하면 불필요한 복사가 발생하지 않아 성능이 향상됩니다.

2. 두번째 for 문

  • rowstd::vector<int> 타입입니다.
  • int elemrow의 각 요소를 가리킵니다. 여기서 int 타입은 벡터의 요소 타입입니다.
  • 이 반복문은 row의 모든 요소를 순차적으로 접근합니다.
  • 각 요소는 elem에 복사됩니다. (참조자가 아닌 복사이기 때문에 필요에 따라 const auto& elem로 변경하여 참조를 사용할 수도 있습니다.)

0개의 댓글