Algoritmo para encontrar o número que aparece mais em uma linha - C ++

Eu preciso de uma ajuda para criar um algoritmo para resolver um problema: Há uma linha com números que aparecem diferentes tempos na linha, e eu preciso encontrar o número que aparece mais e quantas vezes está na linha, ex:

1-1-5-1-3-7-2-1-8-9-1-2

Isso seria 1 e aparece 5 vezes.

O algoritmo deve ser rápido (esse é o meu problema). Alguma ideia ?

questionAnswers(12)

yourAnswerToTheQuestion