Стандарт для не найден при использовании size_t

Существует ли стандарт, какое значение использовать, когда вы выполняете поиск в массиве, а значение не найдено. С подписанным я бы вернул -1. А как насчет size_t, он же long unsigned.

   int find(int a[],int b, int n){
   for(int i=0; i<n; i++){
       if(a[i]==b)
           return i;
   }
   return -1;
   }

При использовании size_t просто придумал бы это. Но это не совсем идеально.

   long long int find(int a[],int b, size_t n){
   for(size_t i=0; i<n; i++){
       if(a[i]==b)
           return (long long int)i;
   }
   return -1;
   }

person Felix Yah Batta Man    schedule 22.11.2018    source источник


Ответы (1)


Чтобы позволить типу size_t иметь отрицательное значение, существует тип ssize_t со знаком.

Вы не можете полагаться на эквивалентность size_t для unsigned, если это зависит от архитектуры.

person danblack    schedule 22.11.2018