Can I check in C(++) if an array is all 0 (or false)?

arrays, c, c++, compare, zero

Solution

You can use the following condition:

(myvector.end() == std::find(myvector.begin(), myvector.end(), true))

Obviously, internally, this loops over all values.

The alternative (which really should avoid looping) is to override all write-access functions, and keep track of whether `true` has ever been written to your vector.

UPDATE

Lie Ryan's comments below describe a more robust method of doing this, based on the same principle.

Problem

Can I check in C(++) if an array is all 0 (or false) without iterating/looping over every single value and without allocating a new array of the same size (to use `memcmp`)? I'm abusing an array of bools to have arbitrary large bitsets at runtime and do some bitflipping on it

Original source