In C++, assume I have an std::array<std::optional<std::int>, 5> array. Let's say I set the first 3 elements to be of a certain value. Is there a function that when passed array returns 3 (i.e. Returns the number of elements that has an assigned value)? Or is there anyway to improve the std::array so that it supports this functionality? I appreciate your help.
P.S. Guaranteed: The array's elements are always consecutive. For instance,
std::array<std::optional<std::int>, 5> arr; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; cout << func(arr) << endl; // Returns 4 in this case Edit 1. I already knew about std::count, but I do not know how to check if an element is defined. Also, the array could be of any type.
Edit 2. What if I used std::optional? How could I do that, then?
std::count?std::count_if