>백엔드 개발 >C++ >C 배열의 모든 요소를 ​​0이 아닌 특정 값으로 초기화하는 방법은 무엇입니까?

C 배열의 모든 요소를 ​​0이 아닌 특정 값으로 초기화하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-28 22:03:11208검색

How to Initialize All Elements of a C   Array to a Specific Non-Zero Value?

C에서 배열 요소를 기본값으로 초기화

다음 구문을 사용하는 C의 배열 초기화에서 문제가 발생합니다.

int array[100] = {-1};

이 초기화는 첫 번째 요소를 -1로 설정하고 나머지 요소를 0으로 유지합니다. 원하는 동작이 아닙니다. 이 문제를 해결하려면 다음 사항을 고려해야 합니다.

구문 해석

구문 int array[100] = {-1}; 본질적으로 "첫 번째 요소를 -1로 설정하고 나머지는 0으로 설정합니다."라고 말합니다. 배열 선언에서 요소가 생략되면 기본적으로 자동으로 0으로 초기화됩니다.

모든 요소를 ​​0이 아닌 값으로 설정

모든 요소를 ​​다음과 같이 초기화하려면 -1과 같이 0이 아닌 값인 경우 기본 생략된 값 초기화에만 의존할 수 없습니다. 대신 다음 접근 방식을 사용할 수 있습니다.

  1. std::fill_n: 라이브러리:
std::fill_n(array, 100, -1);
  1. 루핑: 표준 C에서는 각 요소에 값을 할당하는 루프를 만드는 것이 필요합니다.
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}

속도 비교

루프와 비교했을 때 기본 초기화 속도는 크게 다르지 않습니다. 두 접근 방식 모두 요소를 순차적으로 초기화하므로 시간 복잡도는 동일하게 유지됩니다. 그러나 std::fill_n을 사용하면 수동 루프에 비해 몇 가지 지침을 절약할 수 있어 대부분의 경우 속도가 약간 더 빨라집니다.

위 내용은 C 배열의 모든 요소를 ​​0이 아닌 특정 값으로 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.