C++ stl array: The array is a container for arrays of constant size. This container wraps around fixed-size arrays and does not lose length information when decayed to a pointer.
To use array, we must include the array header.
Header file:
#include <array>
Array Tutorial and Examples
- Creating and initializing std::array objects
- Printing size of array
- Accessing the elements in the array
- Traversing over the array object
1)Creating and initializing std::array objects
i)
std::array<int,5> arr;
In this case, the std::array object arr represents an int array of fixed size 5 that is uninitialized, so all ten elements have garbage values.
ii)
std::array<std::string, 10000> array1;
Here, std::array1 array object represents a fixed-size string array of 10000 characters.
iii)
// First 3 values will be initialized and others will be 0.
std::array<int, 8> array1 = { 78, 33 ,66 };
If we have fewer elements during initialization, the remaining elements will be set to default values. In the case of int, it is 0.
Output:
78 , 33 , 66 , 0 , 0 , 0 , 0 , 0
iv)
std::array also has a member function fill() that allows you to set the same value for all elements at once. It is simple when we have a large array.
std::array<int, 10> array1; // Filling all elements with the value 8 array1.fill(8);
Output:
8 , 8 , 8 , 8 , 8 , 8 , 8 , 8
Below is the implementation of all above methods:
#include <bits/stdc++.h>
using namespace std;
void displayArray(std::array<int, 8>& array1)
{
// displaying the array by iterating over the array
for (auto& element : array1)
cout << element << " ";
cout << endl;
}
int main()
{
// Taking a array and initiazing with garbage values
array<int, 8> array1;
displayArray(array1);
// initializing the array with some values
array<int, 8> array2
= { 10, 20, 30, 40, 50, 60, 70, 80 };
displayArray(array2);
// Only first three values are initialized and remaining
// values are initialized with 0
array<int, 8> array3 = { 23, 46, 28 };
displayArray(array3);
array<int, 8> array4;
// filling all the values with the value 8
array4.fill(8);
displayArray(array4);
return 0;
}
Output:
-184795504 32765 1 0 -184795504 32765 6299128 0 10 20 30 40 50 60 70 80 23 46 28 0 0 0 0 0 8 8 8 8 8 8 8 8
2)Printing size of array
We can get size of array using size() function
Syntax:
array_name.size()
#include <bits/stdc++.h>
using namespace std;
int main()
{
// initalizing the array with some values
array<int, 8> array1 = { 8, 3, 4, 5, 6, 7, 1, 4 };
cout << "Size of array = " << array1.size();
return 0;
}
Output:
Size of array = 8
3)Accessing the elements in the array
Method #1:Using [] operator
We can access the elements in the array using [] operator.
int x = array1[5];
Using the [] operator to access elements that are out of range will result in undefined behaviour.
Method #2:Using at() function
We can access the elements in the array using at() function.
int x = array1.at(5);
Using the at() function to access an out-of-range element will result in an out of range exception.
Method #3:Using get<>() function
We can access the elements in the array using get<>() function.
int x = std::get<5>(arr);
Using the get<> operator to access elements that are out of range will result in a compile time error.
4)Traversing over the array object
In the following example, we will look at four different ways to iterate over an array.
- using Range based for loop
- usingfor loop
- using iterator
- Using for_each
Below is the implementation:
#include <bits/stdc++.h>
using namespace std;
int main()
{
// intializing
// initalizing the array with some values
array<int, 8> array1 = { 8, 3, 4, 5, 6, 7, 1, 4 };
// using range based for loop
cout << "Using range based for loop" << endl;
for (auto& element : array1) {
cout << element << " ";
}
cout << endl;
// using for loop
cout << "Using for loop" << endl;
for (int index = 0; index < array1.size(); index++) {
cout << array1[index] << " ";
}
cout << endl;
cout << "Using iterator" << endl;
// initializing a iterator which points to first element
// of the array
auto itr = array1.begin();
while (itr != array1.end()) {
cout << *itr << " ";
itr++;
}
cout << endl;
// using for_each
cout << "using for_each" << endl;
for_each(array1.begin(), array1.end(),[](const int& element)
{
cout << element << " ";
});
cout << endl;
return 0;
}
Output:
Using range based for loop 8 3 4 5 6 7 1 4 Using for loop 8 3 4 5 6 7 1 4 Using iterator 8 3 4 5 6 7 1 4 using for_each 8 3 4 5 6 7 1 4
Related Programs:
- python dictionary update function tutorial and examples
- python filter function tutorial and examples
- initializer_list tutorial and examples
- passing variable arguments to a function in java using varargs tutorial and example
- problem solving and programming in c notes
- how to create and initialize a list of lists in python
- web crawling and scraping in python