![]() |
VOOZH | about |
Consider a problem where we need to take an unknown number of integer inputs.
A typical solution is to run a loop and stop when a user enters a particular value. How to do it if we are not allowed to use if-else, switch-case, and conditional statements?
The idea is to use the fact that 'cin >> input' is false if the non-numeric value is given. Note that the above approach holds true only when the input value's data type is int (integer).
Important Point: cin is an object of std::istream. In C++11 and later, std::istream has a conversion function explicit bool() const;, meaning that there is a valid conversion from std::istream to bool, but only where explicitly requested. An if or while counts as explicitly requesting conversion to bool. [Source StackOVerflow]
Before C++ 11, std::istream had a conversion to operator void*() const;
Output:
To stop enter any character Enter Your Input 1 2 3 s Total number of inputs entered: 3
Time Complexity: O(count)
Auxiliary Space: O(1)