Algoritmy “count” a “count_if”
C++ 11

image_printTisk

Tyto typy algoritmů, jak jejich název napovídá, slouží ke zjištění počtu buď nějaké hodnoty, nebo lze spočítat počet prvků nějaké datové struktury na základě předaného predikátu.

Algoritmus count

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> data = { 1, 2, 4 ,2, 4, 6 , 3, 2, 7, 2 };

int main() {
    int cnt = count(data.begin(), data.end(), 2);
    cout << "Počet výskytů čísla 2 je " << cnt << endl;
    return 0;
}
Unable to connect to the JDoodle service.

Algoritmus count_if

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<string> data = {
    "abcd",
    "abcdabc",
    "abcdabcdabcde",
    "ab",
    "abc",
    "abcdefe"
};

// Počítá řetězce delší než hodnota length
int countStrings(int length) {
    return count_if(data.begin(), data.end(), [length](string s) {
        return s.length() > length;
    });
}

void printCountOfStrings(int length, int count) {
    cout << "Počet řetězců delších než " << length << " je " << count << "." << endl;
}

int main() {
    for(int length = 0; length < 10; length++) {
        int count = countStrings(length);
        printCountOfStrings(length, count);
    }
    return 0;
}
Unable to connect to the JDoodle service.

Shrnutí

 

image_printTisk
Algoritmy “count” a “count_if”
C++ 11
Ohodnoťte tento článek

Související články