Задание № 5859

Студент

Астафьева Алиса

Задача

Шаблонная функция sum_all

Состояние

Открыто

Назначено

05.11.2024, 09:53

Обновлено

05.11.2024, 09:58

Реализовать функцию sum_all, которая позволяла бы суммировать аргумент практически любого типа, который ей передан.

Входные данные

vector<int> v1    = { 1, 2, 3 };
vector<double> v2 = { 1, 2, 3 };
vector<string> v3 = { "a", "bc", "def" };
vector<char> v4   = { 'a', 'b', 'c' };

Описание задачи

sum_all будет представлять из шаблон функции с частичной специализацией для vector<T>.

Выходные данные

sum_all(5);   // 5
sum_all(3.0); // 3.0
sum_all(v1);  // 6
sum_all(v2);  // 6.0
sum_all(v3);  // строка "abcdef"
sum_all(v4);  // строка "abc"

Усложнения

  1. Добавить частичные специализации для list<T>, forward_list<T>, set<T>, unordered_set<T>.
  2. Добавить частичные специализации для map<K,V> и unordered_map<K,V> с суммированием по значениям (V).

Действия