Hash
Класс hash представляет из себя контейнер реализованный на основе хеш массива. Информация в хешах хранится в виде пар ключ-значение, где и ключ и значение представляются произвольными объектами. Хеш позволяет производить поиск значения по ключу за линейное время. При добавлении элементов в такой контейнер, первоначальная очередность элементов теряется, однако существует возможность перебора всех наличествующих элементов с помощью итератора hash_iterator.
Родители: Object
Методы:
at
replace
empty
size
clear
insert
find
erase
erase_key
begin
end
Реализует операторы:
индексного доступа,
присваивания
индексные операторы
operator [] (ключ)
at(ключ)
Возвращает: Object или null
Оператор индексного чтения служит для получения объекта расположенного по указанному ключу. Если указан ключ, не существующий в таблице, будет возвращен null.
operator []= (ключ, значение)
replace(ключ, значение)
Возвращает: текущий объект
Оператор индексной записи, напротив, служит для записи объекта по соответствующему индексу. Если переданный ключ уже существует, то старое значение будет заменено новым.
Примечание: см. копирование в контейнерах.
empty
Возвращает: логическое значение
Метод возвращает истину, если хеш непуст.
size
Возвращает: int
Метод возвращает текущее количество пар ключ-значение в хеше.
clear
Возвращает: текущий объект
Очищает хеш от содержимого. После этого размер считается нулевым.
insert
insert(ключ, значение)
Возвращает: текущий объект
Метод добавляет переданнцю пару ключ-значение в хеш.
Примечание: см. копирование в контейнерах.
find
find(ключ)
Возвращает: hash_iterator
Метод осуществляет поиск переданного ключа в хеше. Возвращает итератор, установленный на соответствующее значение, либо на конец хеша (специтератор end), если такой ключ не найден.
erase
erase(удаляемая пара: hash_iterator)
Возвращает: текущий объект
Данный метод удаляет из хеша пару ключ-значение, на которую указывает переданный итератор.
erase_key
erase_key(ключ)
Возвращает: текущий объект
Данный метод удаляет из хеша ключ и значение, соответствующее данному ключу.
begin
Возвращает: hash_iterator
Метод создает и возвращает итератор, установленный на "первую" пару ключ-значение в хеше.
Примечание: Здесь, понятие "первая пара" не означает "первая добавленная пара", поскольку при добавлении записей в хеш, информация об очередности добавления элементов теряется. Если вам требуется запоминать очередность добавления значений в хеш, это необходимо сделать отдельно, например хранить во внешней переменной список ключей, обновляя его в момент записи в хеш.
end
Возвращает: hash_iterator
Метод создает и возвращает итератор установленный на "конец" хеша. Данный итератор не указывает на действительную запись в хеше, а служит лишь для специальных целей. Например, такой пустой итератор возвращает метод find, если переданный ему ключ не был найден. Другое применение этого итератора — обеспечение возможности прохода по всем элементам хеша. Реализуется это примерно так: <source lang=kpp> var h = { :a => 1, :b => 2, :c => 3 }; for (var i = h.begin; i != h.end; ++i)
//работаем с элементами хеша
</source>
В приведенном выше примере, итерации осуществляются до тех пор, пока текущий итератор не станет равен итератору конца. Таким образом, итератор i пройдет все возможные пары, хранящиеся в хеше.