Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Maps

Boost , Chapter 1. Boost.Icl , Semantics

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

По определению карта представляет собой набор пар. Поэтому мы ожидаем, что карты будут подчиняться тем же законам, что и наборы. Тем не менее, семантика картiclможет быть другой из-за агрегирования объектов, где операции агрегирования комбинатора передаются для объединения связанных значений карты. Получается, что агрегация по принципу перекрытия индуцирует семантические свойства к картам icl таким образом, что набор действительных уравнений будет зависеть от семантики типа<CodomainT>связанных с картой значений.

Это менее волшебно, чем может показаться на первый взгляд. Если, например, мы инстанцируем<interval_map>для сбора и консигнации<std::strings>, связанных с интервалами,

interval_map<int,std::string> cat_map;
cat_map += make_pair(interval<int>::rightopen(1,5),std::string("Hello"));
cat_map += make_pair(interval<int>::rightopen(3,7),std::string(" World"));
cout << "cat_map: " << cat_map << endl;

we won't be able to apply operator -=

// This will not compile because string::operator -= is missing.
cat_map -= make_pair(interval<int>::rightopen(3,7),std::string(" World"));

Потому что, как std::sting не реализует себя<-=>, это не компилируется. Так что все законы, которые опираются на<operator-=>или<->, не только не будут действительны, они даже не могут быть заявлены. Это сводит набор законов, которые могут быть действительны для более богатого<CodomainT>типа, к меньшему набору законов и, следовательно, к менее ограниченной семантике.

В настоящее время мы исследовали и подтвердили два основных вывода icl:

  • Карты наборов, которые будут называтьсяКоллекционерыи
  • Карты чисел, которые будут называтьсяКвантификаторы

Оба, кажется, имеют много интересных вариантов использования для практического применения. Семантика, связанная с терминомЧисла— этокоммутативный моноиддля неподписанных чисел икоммутативная или абелевая группадля подписанных чисел. С практической точки зрения мы можем рассматривать числа как подсчет или количественную оценку ключевых значений карты.

IclКарты наборовилиКоллекционерыявляются моделями концепции<Set>. Это означает, что все законы, изложенные как семантика для<icl::Sets>в предыдущей главе, также держатся для<Maps ofSets>.Карты чиселилиКвантификаторы, напротив, не являются моделями понятия<Set>. Но есть существенное пересечение законов, которые применяются как для<Collectors>, так и<Quantifiers>.

Тип карты

Алиса

поведение

Карты наборов

Коллекционер

Собирает элементыдляключевых значений

Карты чисел

Квантифиер

Подсчитывает или количественно оцениваетключевые значения

В следующих двух разделах закон основывает семантикуКоллекционерови.Квантификаторыбудут описаны более подробно.


PrevUpHomeNext

Статья Maps раздела Chapter 1. Boost.Icl Semantics может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Semantics ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:51:14/0.005342960357666/1