Самое быстрое решение - это написать свой контейнер, который будет складывать данные в обычный stl-ий контейнер, но при их изменении будет сравнивать их с заданным значением и поддерживать счетчик не равных заданному числу элементов (не нулевых в вашем примере).
Тут все опрерации будут выполнятся за константое время. Быстрее никак. И расход памяти минимальный - один счетчик. Но придется много операторов методов реализовывать, если вы хотите эту вашу коллекцию использовать как обычные stl коллекции (итератор свой, всякие begin/end/size/operator[] etc).