2017-05-11 1 views
2

템플릿이있는 2 차원 배열 std::array< std::array<ScalarType ,3> ,3 > my_array이 있고 프로그램에서 서로 다른 시간에 0으로 설정하고 싶습니다. 사용할 수있는 것 같습니다.가장 빠른 방법은 템플릿을 초기화하는 것입니다. 2D std : array to 0

my_array.fill(0); 

작동하지 않는 것 같습니다. 2d 배열을 올바르게 채우려면 어떻게해야합니까?

+0

나는 모든 0을 담고있는'const' 배열 객체를 만들려고합니다. 그리고 그 배열을 0으로 만들 필요가있을 때마다 그 배열을 복사해야합니다. 아마도 그 배열 객체의 이름을 'zero'라고 할 것입니다. –

+1

"작동하지 않는다"고 말할 때마다 컴파일러 오류 메시지 나 런타임에 잘못되는 것에 대한 설명을 게시하여이를 입증해야합니다. 단지 "일하지 않는다"는 말은 쓸모가 없습니다. * 아무 것도 * 말할 수 있습니다. –

답변

4

제가

my_array.fill({}); 

인자의 사용을 제안 {}my_array의 내용을 채우기 위해 사용되는, std::array<ScalarType, 3> 0으로 초기화를 생성한다.

+0

감사합니다. 내 문제가 해결되었습니다. 이 구문에 대해 더 자세히 읽을 수있는 곳은 어디입니까? – SunnyIsaLearner

+1

@SunnyIsaLearner, 웹에서 조회 값 초기화. http://en.cppreference.com/w/cpp/language/value_initialization에서 시작할 수 있습니다. –

3

변경이이에

my_array.fill(0); 

: 배열의 내용을 초기화 기본

my_array.fill({}); 

.

관련 문제