Мне кажется, вы должны обновить cc и ttns для хоста n, который вы проверяете во внутреннем цикле.
hosts[n].inc_cc();
hosts[n].new_ttns();
Вместо
hosts[i].inc_cc();
hosts[i].new_ttns();
И переместить чек на
( hosts[i].get_ttns() == CLOCK )
вне внутреннего цикла.
if ( hosts[i].get_ttns() == CLOCK )
for(int n = 0; n < hosts.size(); n++){
Тогда состояние внутри становится
if( (i != n) && /* host i doesn't compare to host n */
(hosts[i].get_ttns() == hosts[n].get_ttns()) /* host i and n share ttns */
){
Таким образом, вы не count++
для недопустимых хостов.