Tutorial

Find Array Length in C++

Published on August 3, 2022
Default avatar

By Sneh

Find Array Length in C++

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.

Introduction

In this article, we are going to learn about the various ways following which we can find array length in C++.

Basically, when we say the length of an array actually we refer to the total number of elements present in the corresponding array. For example, for an array as given below:

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

The size of the array or length of the array here is equal to the total number of elements in it. Which, in this case, is ‘5’.

Ways to find Length of an Array in C++

Now let us take a look at the different ways following which we can find the length of an array in C++, they are as follow:

  1. Counting element-by-element,
  2. begin() and end(),
  3. sizeof() function,
  4. size() function in STL,
  5. Pointers.

Now, let us discuss each method one-by-one with examples and in detail.

1. Counting element-by-element

Traversing throughout the given array and simultaneously counting the total number of elements we traversed can give us the length of the array right?

But for traversing we cannot use a for loop directly if we do not know the array length beforehand. This issue can be solved by using a simple for-each loop. Look at the code below carefully.

#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;
}

Output:

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

Here, as we said, we traverse through the entire array arr using a for-each loop with iterator i. Simultaneously the counter, c is incremented. At last, when the traversing is over, c holds the length of the given array.

2. Using begin() and end()

We can also calculate the length of an array using the standard library’s begin() and end() functions. The two functions return iterators pointing to the start and the end of the corresponding array respectively. Take a close look at the given code,

#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;
}

Output:

The Length of the Array is : 4

Hence, here as we can see, the difference between the return values of the two functions end() and begin() give us the size or length of the given array, arr. That is, in our case, 4.

3. Using sizeof() function to Find Array Length in C++

The sizeof() operator in C++ returns the size of the passed variable or data in bytes. Similarly, it returns the total number of bytes required to store an array too. Hence, if we simply divide the size of the array by the size acquired by each element of the same, we can get the total number of elements present in the array.

Let us how that works

#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;
}

Output:

The length of the array is: 3

As we can see, we get our desired output.

4. Using the size() function in STL

We have the size() function defined in the standard library which returns the number of elements in the given container(array in our case).

#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;
}

Output:

The length of the given Array is: 5

As desired, we get the output as shown above.

5. Using Pointers to Find Array Length in C++

We can also find the length of a given array using pointers. Let us see how

#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;
}

Output:

The length of the array is: 6

The expression *(arr+1) gives us the address of the memory space just after the array’s last element. Hence, the difference between it and the arrays starting location or the base address(arr) gives us the total number of elements present in the given array.

Conclusion

So, in this tutorial, we discussed the various methods to find array length in C++. Even though each one of the above examples is easy to go with, we prefer the one using the for-each loop. Not only because of code readability but also for its cross-platform reliability.

For any further questions feel free to use the comments below.

References

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar
Sneh

author

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel