C++ initializer_list::begin() Function



The C++ std::initializer_list::begin() function provides an iterator pointing to the first element in the initializer_list. This function is commonly used in scenarios where a fixed, predefined set of values is needed, such an initializing containers or passing a list of arguments.

Syntax

Following is the syntax for std::initializer_list::begin() function.

const T* begin() const noexcept;

Parameters

It does not accepts any parameters

Return value

This function returns a pointer to the first element in the initializer_list.

Time complexity

The time complexity of this function is Constant i.e. O(1)

Example

In the following example, we are going to consider the basic usage of the begin() function.

#include <iostream>
#include <initializer_list>
void a(std::initializer_list < int > x) {
   auto b = x.begin();
   if (b != x.end()) {
      std::cout << "First Element: " << * b << std::endl;
   } else {
      std::cout << "Empty List." << std::endl;
   }
}
int main() {
   a({1,3,5});
   return 0;
}

Output

Output of the above code is as follows −

First Element: 1

Example

Consider the following example, where we are going to calculate the sum of all elements.

#include <iostream>
#include <initializer_list>
int x(std::initializer_list < int > y) {
   int a = 0;
   for (auto it = y.begin(); it != y.end(); ++it) {
      a += * it;
   }
   return a;
}
int main() {
   std::cout << "Result : " << x({2,4,6,8}) << std::endl;
   return 0;
}

Output

Following is the output of the above code −

Result : 20

Example

Let's look at the following example, where we are going to check whether the first element in the initializer_list is even or odd.

#include <iostream>
#include <initializer_list>
bool a(std::initializer_list < int > b) {
   auto x = b.begin();
   return (x != b.end() && * x % 2 == 0);
}
int main() {
   std::cout << (a({2,3,6}) ? "Even" : "Odd") << std::endl;
   return 0;
}

Output

If we run the above code it will generate the following output −

Even
cpp_initializer_list.htm
Advertisements