C에서 배열 요소를 기본값으로 초기화
다음 구문을 사용하는 C의 배열 초기화에서 문제가 발생합니다.
int array[100] = {-1};
이 초기화는 첫 번째 요소를 -1로 설정하고 나머지 요소를 0으로 유지합니다. 원하는 동작이 아닙니다. 이 문제를 해결하려면 다음 사항을 고려해야 합니다.
구문 해석
구문 int array[100] = {-1}; 본질적으로 "첫 번째 요소를 -1로 설정하고 나머지는 0으로 설정합니다."라고 말합니다. 배열 선언에서 요소가 생략되면 기본적으로 자동으로 0으로 초기화됩니다.
모든 요소를 0이 아닌 값으로 설정
모든 요소를 다음과 같이 초기화하려면 -1과 같이 0이 아닌 값인 경우 기본 생략된 값 초기화에만 의존할 수 없습니다. 대신 다음 접근 방식을 사용할 수 있습니다.
std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
속도 비교
루프와 비교했을 때 기본 초기화 속도는 크게 다르지 않습니다. 두 접근 방식 모두 요소를 순차적으로 초기화하므로 시간 복잡도는 동일하게 유지됩니다. 그러나 std::fill_n을 사용하면 수동 루프에 비해 몇 가지 지침을 절약할 수 있어 대부분의 경우 속도가 약간 더 빨라집니다.
위 내용은 C 배열의 모든 요소를 0이 아닌 특정 값으로 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!