Статья: Модуль для работы с ассоциативными массивами в C++ Builder

Мой любимый язык – PHP. Он изящен и прост, но, к сожалению, предназначен только для программирования сайтов. «Обычную» программу на нём не напишешь.

К счастью, некоторые технологии, реализованные в PHP можно перенести и в другие языки программирования: например, в C++.

Одна из таких технологий – ассоциативные массивы.

В ассоциативном массиве вместо числовых индексов используются ключи любых типов. Данные в ассоциативном массиве так же могут быть разнотипными.

К примеру:

ass_arr array;

array[0] = 123;

array["name"] = "John Silver";

Здесь в массиве array создаются два элемента, один из которых имеет ключ «0» и числовое значение «123», другой – ключ «name» и строковое значение «John Silver». «ass_arr» – не массив задниц, как подумало большинство читателей, а возможное имя типа (класса) ассоциативного массива.

Удобно? Удобно! Не нужно описывать входящие в массив элементы и их типы. Не нужно думать о размере массива – он динамичен. Не нужно заботится ни о чём, кроме свободной памяти.

Подробнее об удобствах

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

Рассмотрим простой пример. Возьмём структуру, в которой хранятся настройки некоей программы. Опишемеётак:

struct preferences

{

int WindowWidth;

int WindowHeight;

int WindowX;

int WindowY;

char documentPath[128];

};

Для сохранения данных этой структуры где-либо, потребуется специальная функция, которая будет «знать» все поля, которые присутствуют в этой структуре. Например, такая:

bool savePreferences(struct preferences* pref)

{

saveInteger(pref->WindowWidth);

saveInteger(pref->WindowHeight);

...

saveString(pref->documentPath);

}

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 220
Бесплатно скачать Статья: Модуль для работы с ассоциативными массивами в C++ Builder