HashMap в симбиане - PullRequest
       8

HashMap в симбиане

1 голос
/ 19 июня 2009

я хочу реализовать Hashmap в symbian

, который принимает два значения

есть ли органы, которые его реализовали

есть класс RHashMap, RHashTable, но я хочу передать дескриптор и значение

или

В противном случае есть другое решение для этого класса

заранее спасибо

Ответы [ 2 ]

2 голосов
/ 19 июня 2009

Я думаю, что документация не проясняет тот факт, что у вас, вероятно, должен быть класс, который содержит целое число и дескриптор.

THashFunction32, которую вам нужно реализовать, берет один экземпляр вашего класса и возвращает его целочисленный член.

TIdentityRelation, которое вам нужно реализовать, берет два экземпляра вашего класса и сравнивает целочисленные члены.

Когда вы вставляете экземпляр вашего класса в RHashMap, целочисленные значения и члены дескриптора должны иметь значимые значения.

Когда вы хотите извлечь дескриптор из вашего RHashMap, вы создаете и экземпляр своего класса, но устанавливаете только целочисленное значение члена. Используйте этот объект в качестве параметра для RHashMap :: Find (), и он вернет экземпляр вашего класса, содержащий дескриптор, который вы искали.

1 голос
/ 20 июля 2009

RHashMap является шаблонным типом. Вы можете использовать любые классы, которые вам требуются, следующим образом:

RhashMap<TInt,TPtr> map;
map.Insert(myInt,myDes);

...

myDes = map.FindL(myInt);
TInt error = map.Remove(myInt);
User::LeaveIfError(error);
map.Close();

Изменить: Если вы хотите, чтобы один ключ указывал на две вещи, просто заключите эти две вещи в один объект.

...