Отображение списка по горизонтали - PullRequest
0 голосов
/ 23 сентября 2018

Я недавно сталкивался с этой программой geeksforgeeks Хеширование с отдельной цепочкой :

Но я не могу понять, что это за код displayHash() функция-член.

Мои вопросы:

  1. Действительно ли необходимо использовать тип auto (так как код отлично работает с int введите тоже)?

  2. Как список отображается горизонтально с использованием auto x:table[i] (синтаксис мне не понятен)?

Полезные ссылки на документы приветствуются.

1 Ответ

0 голосов
/ 23 сентября 2018

Все это связано с дополнениями C ++ 11 (которые не являются новыми на данный момент, прошло более 7 лет).

auto не является действительным типом, оно выводитсяк одному.Так что это никогда не нужно, хотя очень полезно.Например, если вы замените int index = hashFunction(key); на auto index = hashFunction(key);, вы на самом деле ничего не измените семантически: auto выводится в int из-за типа возврата hashFunction.
См. cppreference .

Строка for (int x : table[i]) называется «петлей на основе диапазона» и эквивалентна следующему (по крайней мере, в этом случае):

{
    auto && __range = table[i];
    auto __begin = __range.begin();
    auto __end = __range.end();
    for ( ; __begin != __end; ++__begin) {
        int x = *__begin;
        // loop body
    }
} 

См. cppreference .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...