Я пытаюсь написать шаблонную функцию, которая будет принимать контейнер STL и будет отображать все вхождения элементов в нем и число, в котором они произошли.Я планирую использовать карту, выполнить итерацию по контейнеру и либо добавить новый элемент, если он не существует, либо увеличить количество вхождений для этого элемента.
Объявление:
template < typename Container_t >
void findOccurrences (const Container_t& inContainer);
Мой вопрос: могу ли я как-то получить спецификатор типа элемента, который содержит контейнер?Поэтому, когда я создаю свою карту, ключевым значением будет элемент в inContainer
.Что-то вроде:
map < typeid ( * inContainer.begin()), int > occurrences;
Или мне придется изменить свой шаблон на что-то вроде этого:
template < typename Container_t , typename Element_t >
void findOccurrences ( const Container_t & inContainer , Element_t dummy )
{
map < Element_t , int > occurrences;
}
Спасибо