웹사이트 검색

C++에서 배열 길이 찾기


소개

이 기사에서는 C++에서 배열 길이를 찾을 수 있는 다양한 방법에 대해 알아봅니다.

기본적으로 배열의 길이를 말할 때 실제로는 해당 배열에 있는 요소의 총 수를 참조합니다. 예를 들어, 아래와 같은 배열의 경우:

int array1[] = { 0, 1, 2, 3, 4 }

여기서 배열의 크기 또는 배열의 길이는 배열의 총 요소 수와 같습니다. 이 경우 '5'입니다.

C++에서 배열의 길이를 찾는 방법

이제 C++에서 배열의 길이를 찾을 수 있는 다음과 같은 다양한 방법을 살펴보겠습니다.

  1. 요소별로 계산,
  2. begin()end(),
  3. sizeof() 함수,
  4. size() STL 함수,
  5. 포인터

이제 각 방법을 예제와 함께 자세히 설명하겠습니다.

1. 요소별로 계산하기

주어진 배열 전체를 순회하면서 동시에 순회한 총 요소 수를 계산하면 배열의 길이를 알 수 있습니다.

그러나 순회를 위해 배열 길이를 미리 알지 못하면 for 루프를 직접 사용할 수 없습니다. 이 문제는 간단한 for-each 루프를 사용하여 해결할 수 있습니다. 아래 코드를 주의 깊게 살펴보십시오.

#include<iostream>    
#include<array> 
using namespace std;
int main()
{
   int c;
   int arr[]={1,2,3,4,5,6,7,8,9,0};
   cout<<"The array is: ";
   for(auto i: arr)
   {
   		cout<<i<<" ";
   		c++;
   }
   cout<<"\nThe length of the given Array is: "<<c;
   
   return 0;
}

산출:

The array is: 1 2 3 4 5 6 7 8 9 0
The length of the given Array is: 10

여기에서 우리가 말했듯이 반복자 i와 함께 for-each 루프를 사용하여 전체 배열 arr을 탐색합니다. 동시에 카운터 c가 증가합니다. 마침내 순회가 끝나면 c는 주어진 배열의 길이를 유지합니다.

2. begin() 및 end() 사용

표준 라이브러리의 begin()end() 함수를 사용하여 배열의 길이를 계산할 수도 있습니다. 두 함수는 각각 해당 배열의 시작과 끝을 가리키는 반복자를 반환합니다. 주어진 코드를 자세히 살펴보고,

#include<iostream>    
#include<array> 
using namespace std;
int main()
{  
   //Given Array
   int arr[] = { 11, 22, 33, 44 };
   
   cout<<"The Length of the Array is : "<<end(arr)-begin(arr); //length
   
   return 0;
}

산출:

The Length of the Array is : 4

따라서 여기서 볼 수 있듯이 두 함수 end()begin()의 반환 값의 차이는 주어진 배열의 크기 또는 길이를 제공합니다. arr. 즉, 우리의 경우 4.

3. sizeof() 함수를 사용하여 C++에서 배열 길이 찾기

C++의 sizeof() 연산자는 전달된 변수 또는 데이터의 크기를 바이트 단위로 반환합니다. 마찬가지로 배열을 저장하는 데 필요한 총 바이트 수도 반환합니다. 따라서 단순히 배열의 크기를 각 요소가 얻은 크기로 나누면 배열에 있는 요소의 총 수를 얻을 수 있습니다.

어떻게 작동하는지 살펴보겠습니다.

#include<iostream>    
#include<array> 
using namespace std;
int main()
{  //Given array
   int  arr[] = {10 ,20 ,30};
   
   int al = sizeof(arr)/sizeof(arr[0]); //length calculation
   cout << "The length of the array is: " <<al;
   
   return 0;
}

산출:

The length of the array is: 3

보시다시피 원하는 출력을 얻습니다.

4. STL에서 size() 함수 사용하기

주어진 컨테이너(이 경우 배열)의 요소 수를 반환하는 표준 라이브러리에 정의된 size() 함수가 있습니다.

#include<iostream>    
#include<array> 
using namespace std;
int main()
{  //Given array
   array<int,5> arr{ 1, 2, 3, 4, 5 };
   //Using the size() function from STL
   cout<<"\nThe length of the given Array is: "<<arr.size();
   return 0;
}

산출:

The length of the given Array is: 5

원하는 대로 위와 같이 출력을 얻습니다.

5. 포인터를 사용하여 C++에서 배열 길이 찾기

포인터를 사용하여 주어진 배열의 길이를 찾을 수도 있습니다. 방법을 알아보겠습니다.

#include<iostream>    
#include<array> 
using namespace std;
int main()
{  //Given array
   int  arr[6] = {5,4,3,2,1,0};
   
   int len = *(&arr + 1) - arr;
   //*(&arr + 1) is the address of the next memory location
   // just after the last element of the array
   
   cout << "The length of the array is: " << len;
   
   return 0;
}

산출:

The length of the array is: 6

*(arr+1) 표현식은 배열의 마지막 요소 바로 뒤에 있는 메모리 공간의 주소를 제공합니다. 따라서 그것과 배열 시작 위치 또는 기본 주소(arr) 사이의 차이는 주어진 배열에 있는 요소의 총 수를 제공합니다.

결론

따라서 이 튜토리얼에서는 C++에서 배열 길이를 찾는 다양한 방법에 대해 논의했습니다. 위의 각 예제는 사용하기 쉽지만 for-each 루프를 사용하는 예제를 선호합니다. 코드 가독성뿐만 아니라 플랫폼 간 안정성 때문입니다.

추가 질문이 있으시면 아래 의견을 자유롭게 사용하십시오.

참조

  • 배열의 길이는 어떻게 알 수 있습니까? - 스택 오버플로 질문
  • C++의 for-each 루프 - JournalDev 게시물.