2차원 std::벡터를 효율적으로 초기화
다음 코드 조각을 고려하세요.
std::vector< std::vector<int> > fog; for(int i=0; i<A_NUMBER; i++) { std::vector <int> fogRow; for(int j=0; j<OTHER_NUMBER; j++) { fogRow.push_back(0); } fog.push_back(fogRow); }
이 방법 2차원 std::벡터를 초기화하는 것은 비효율적입니다. std::벡터::벡터(count, value) 생성자를 활용하는 대체 접근 방식을 사용할 수 있습니다.
std::vector<std::vector<int>> fog( ROW_COUNT, std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
0이 아닌 기본값을 원하는 경우 아래와 같이 지정하세요.
std::vector<std::vector<int>> fog( ROW_COUNT, std::vector<int>(COLUMN_COUNT, 4));
또한 C 11에 도입된 균일한 초기화를 사용하면 {}를 사용하여 간결한 초기화가 가능합니다.
std::vector<std::vector<int>> fog { { 1, 1, 1 }, { 2, 2, 2 } };
위 내용은 C에서 2D std::벡터를 초기화하는 가장 효율적인 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!