Что такое C ++-эквивалент коллекций python.Counter? - PullRequest
0 голосов
/ 30 октября 2018

Объект python collections.Counter отслеживает количество объектов.

>> from collections import Counter
>> myC = Counter()
>> myC.update("cat")
>> myC.update("cat")
>> myC["dogs"] = 8
>> myC["lizards"] = 0
>> print(myC)
{"cat": 2, "dogs": 8, "lizards": 0}

Есть ли аналогичный объект C ++, где я могу легко отслеживать количество вхождений типа? Может быть от map до string? Имейте в виду, что приведенное выше является лишь примером, и в C ++ это будет обобщать для подсчета других типов.

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете использовать std::map как:

#include <iostream>
#include <map>

int main()
{
    std::map<std::string,int> counter;
    counter["dog"] = 8;
    counter["cat"]++;
    counter["cat"]++;
    counter["1"] = 0;

    for (auto pair : counter) {
        cout << pair.first << ":" << pair.second << std::endl;
    }
}

Выход:

1:0
cat:2
dog:8
...