C++ 11에서 사용할 수있는 "각 스타일"의 구문은 배열의 실제 크기 (요소 수)를 모른 채 배열 반복을 허용하는 것처럼 보일 것입니다. 새로운 표준의 일부이기 때문에 C 배열의 경우에도 이것이 완벽하게 안전하다고 가정합니다. 일반적으로, 당신은 또한 별도로 조작하기 전에 C 배열의 크기를 알고 있어야하지만, 누군가가 당신이 예상대로 정확히 작동이 새로운 C++ 기술과 경험에서 내가 검증을 원하는 :C++의 범위 기반 루프
extern float bunch[100];
for (float &f : bunch) {
f += someNumber;
}
아무것도 나는 거기 이 기술에 대한 명백하지 않은 부작용 또는 단점을 알아야합니까? 아마도 코드의 상당 부분이 표준에 나오기 전에 작성된 코드 일 것입니다. 희소 한 사용법이 잘 알려지지 않은 다른 이유 때문이 아닌지 확인하고 싶습니다.
배열의 크기를 항상 알 수 있습니다 (https://gist.github.com/3959946#file-arrays-h-L33). 이것을 포인터로 변환하면 크기를 알지 못하게됩니다. –
@ R.MartinhoFernandes : 좋은 요지! –
일반적으로 평범한 배열을 사용하고 표준 라이브러리 컨테이너로 이동하면 더 행복한 C++ 생활을 누릴 수있다. –