convert manual loops to std::count_if

Simpler and generates less assembly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2021-04-23 02:16:05 -07:00 committed by Tomas Babej
parent 62399239ca
commit 73575f8d88
3 changed files with 4 additions and 18 deletions

View file

@ -57,11 +57,7 @@ int CmdCount::execute (std::string& output)
filter.subset (filtered);
// Find number of matching tasks. Skip recurring parent tasks.
int count = 0;
for (const auto& task : filtered)
if (task.getStatus () != Task::recurring)
++count;
int count = std::count_if(filtered.begin(), filtered.end(), [](const auto& task){ return task.getStatus () != Task::recurring; });
output = format (count) + '\n';
return 0;
}

View file

@ -70,17 +70,11 @@ int CmdStats::execute (std::string& output)
// Count the undo transactions.
std::vector <std::string> undoTxns = Context::getContext ().tdb2.undo.get_lines ();
int undoCount = 0;
for (auto& tx : undoTxns)
if (tx == "---")
++undoCount;
int undoCount = std::count(undoTxns.begin(), undoTxns.end(), "---");
// Count the backlog transactions.
std::vector <std::string> backlogTxns = Context::getContext ().tdb2.backlog.get_lines ();
int backlogCount = 0;
for (auto& tx : backlogTxns)
if (tx[0] == '{')
++backlogCount;
int backlogCount = std::count_if(backlogTxns.begin(), backlogTxns.end(), [](const auto& tx){ return tx.front() == '{'; });
// Get all the tasks.
Filter filter;