Ich habe eine vector<int> count
die ich push_back
ganzen Zahlen, es wie folgt gefüllt:Spezifische Zählung einmal Vektor wird mit Null int und positiven int
0,0,0,0,0,0,0, 1,2,3,4,5, 0,0,0,0,0,0,0,0, 6,7,8, 0,0,0,0, 9,10, 0 , 0,0
Ich möchte diesen Vektor durchlaufen und es sollte geben int counts = 3
, grundsätzlich zählen, wie viele positive ganze Zahlen gibt es zwischen den Nullen und zählen Sie es als 1 pro Gruppe.
Ich habe versucht, den ganzen Tag durch alle Elemente zu schlängeln und verschiedene Ansätze zu versuchen, aber jetzt gebe ich auf, deshalb würde Hilfe geschätzt werden!
Können Sie zeigen, was Sie bisher versucht haben? – Slava
Verwenden Sie ein Flag und setzen Sie es auf false. Gehe den Vektor Element für Element durch. Sobald Sie eine Nicht-0 gefunden haben und das Flag falsch ist, setzen Sie das Flag auf Wahr und inkrementieren Sie einen Zähler. Sobald Sie eine Null gesetzt haben, setzen Sie das Flag auf false zurück. mach weiter, bis du eine andere nicht 0 findest und mache denselben Prozess. – NathanOliver
[std :: barriered_find] (http://en.cppreference.com/w/cpp/algorithm/adjacent_find) kann zum Auffinden von Gruppenrahmen verwendet werden. –