Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Liczenie serii wystąpień

Ostatnio zmodyfikowano 2014-05-10 00:19
Autor Wiadomość
Midas
Temat założony przez niniejszego użytkownika
Liczenie serii wystąpień
» 2014-05-09 19:16:14
Cześć, zastanawiam się jak liczyć liczbę serii w ciągu np. jeżeli mamy ciąg
1  1  1  2  1  2  1  1  2  2  2  2  1  1

Mamy 7 serii
4 serie jedynek
3 serie dwójek

Czy ktoś ma jakiś pomysł ?
P-109583
Monika90
» 2014-05-09 20:16:33
to przecież trywialne!

template<class T>
std::map<T, int> count_series(const std::vector<T>& seq)
{
    std::map<T, int> series;
    if (!seq.empty())
    {
        auto current = seq[0];
        series[current] = 1;
        std::size_t i = 1;
        while (i < seq.size())
        {
            if (current != seq[i])
            {
                current = seq[i];
                series[current] += 1;
            }
       
            ++i;
        }
    }
   
    return series;
}


żeby nie było, że nie działa:
http:/​/coliru.stacked-crooked.com/a​/00c810f0fe2c136d
P-109592
Midas
Temat założony przez niniejszego użytkownika
» 2014-05-10 00:19:31
Nigdy jeszcze nie korzystałem z STL, a tym bardziej z map. Może to jest trywialne, nie wiem. W każdym razie dzięki za pomoc.
P-109607
« 1 »
  Strona 1 z 1