Ребята, вкратце о найденном (решила быстренько задокументировать, пока еще помню, что делала
):
1) ACE_Map - абстрактный класс, поэтому его не используют.
Есть куча производных классов, из которых с наскока самым простым (хм...) оказался ACE_Map_Manager_Adapter (там меньше всего параметров
)
Кроме key и value там появляется еще один новый параметр - имя класса (например keyGen), с помощью которого можно создавать (видимо, модифицировать тоже, но я туда не добиралась) key.
2) Применительно к ACE_Map_Manager_Adapter:
при внесении новых пар в map имеем следующие возможности:
- bind(),
- bind_modify_key(),
- bind_create_key().
В первых 2-х случаях все работает как в родимом stl::map, в третьем случае происходит вызов того самого класса (в моем примере это keyGen) для создания ключа по заданной нами схеме.
3) при объявлении map-а мы задаем какой-то стартовый размер, который в реальности не имеет никакого значения, ибо при добавлении каждой новой пары сначала идет проверка на наличие созданного заранее пустого элемента. Если элемент отсутствует (например, мы задали стартовый size = 1 и при этом уже добавляем второй элемент в наш map ), вызывается тривиальный realloc.
4) В проект надо включить (сразу оговорюсь - D:\ у меня выбран только потому, что по установке начальства все проекты припаккованы именно туда):
- ACEsd.lib - "AdditionalDependencies"
- D:\.....\ace_adonis\lib - "AdditionalLibraryDirectories"
- D:\...\ace_adonis - "AdditionalIncludeDirectories"
5) На просторах инета, равно как и в его глубинах нашла набор примерчиков:
http://csourcesearch.net/cpp/fidDCDBC36936DB8F909DE4AAD0F43A578D36FBEF1F.aspx?s=mdef%3Ainsert
один из которых и попробовала разобрать.
6) К теме подвесила свой примерчик (сварганеный в основе своей на основании вышеописанного линка. Моего там - кусочек в main()
) ). Т.о. начало просмотра экспозиции - эта самая main()
Просьба ногами не бить - чем богаты, тем и рады
(да, студия 2005)