C/C++ Arena

Step 2 of 8

Templates over containers

Templates can take any parameter type, including containers of T:

template <typename T>
T sum(const std::vector<T>& v) {
    T s{};                  // T{} is "zero" for numbers, "" for strings
    for (const auto& x : v) s += x;
    return s;
}

Your turn: write template <typename T> int count_equal(const std::vector<T>& v, const T& value) that counts elements equal to value.

Previous: Function templates Next: Class templates