От http://www.programmersheaven.com/download/49349/download.aspx
private static Map sortByValue(Map map) {
List> list = new LinkedList<>(map.entrySet());
Collections.sort(list, new Comparator
Короткое замыкание также содержит числа. То же самое и со знаком char.
Но ни один из этих типов не может быть достаточно большим для представления размеров любых строк.
string :: size_type
гарантирует именно это. Это тип, достаточно большой для представления размера строки, независимо от ее размера.
В качестве простого примера того, почему это необходимо, рассмотрим 64-битные платформы. Типичный тип int для них по-прежнему 32-битный, но у вас гораздо больше, чем 2 ^ 32 байта памяти.
Таким образом, если бы использовался (подписанный) int, вы не смогли бы создавать строки размером более 2 ^ 31 символа. . Однако на этих платформах size_type будет 64-битным значением, поэтому оно может без проблем представлять строки большего размера.
Вложенный size_type
typedef является обязательным требованием для STL-совместимых контейнеров (каковым бывает std :: string
), поэтому общий код может выбрать правильный целочисленный тип для представления размеров.
Нет смысла использовать его в коде приложения, size_t
вполне нормально ( int
нет, потому что он подписан, а вы ' я получу подписанные / неподписанные предупреждения о сравнении).