C++ за 21 день седьмое издание


Преимущества и недостатки использования наборов и мультимножеств



Download 1,38 Mb.
bet321/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   317   318   319   320   321   322   323   324   ...   437
Bog'liq
word1

Преимущества и недостатки использования наборов и мультимножеств

Классы s e t и m u l t i s e t библиотеки STL предоставляют существенные преимущества приложениям, нуждающимся в частых поисках. Поскольку их содержимое отсортировано, поиск осущ ествляется быстрей. Но, чтобы предоставить это преимущ ество, контейнер должен сортировать элементы во время вставки. Таким образом, при вставке элементов есть дополнительные затраты на их сортировку, являющиеся необходимой платой за воз­ можность часто использовать такие функции, как f i n d ().


Функция f i n d () использует внутреннюю двоичную древовидную структуру. Эта от­ сортированная двоичная древовидная структура является причиной другого неявного не­ достатка по сравнению с таким последовательным контейнером, как вектор. Элемент в векторе, на который указывает итератор (скажем, возвращенный функцией s t d : : f i n d ()), может быть перезаписан новым значением. Но в случае набора элементы сортируются согласно их значениям, а потому никогда не следует допускать перезаписи элемента с по­ мощью итератора, даже если бы программно это было возможно.
С++11____________________________________________


Реализация хеш-набора библиотеки STL — классы


std ::unordered_set и std ::unordered_multiset

Контейнеры s t d : : s e t и s t d : :m u l t i s e t библиотеки STL сортируют элементы (кото­ рые одновременно являются ключами) на основании предиката s t d : : le s s < T > или пре­ диката, предоставленного пользователем. Поиск в отсортированном контейнере быстрее, чем в не отсортированном, таком, как вектор, а метод s o r t () обеспечивает логарифми­ ческую сложность. Это означает, что время, потраченное на поиск элемента в наборе, не прямо пропорционально количеству элементов в нем, а скорее его логарифму. Таким об­ разом, поиск среди 10 000 элементов набора осуществляется вдвое дольше, чем среди 100 элементов (так, 100Л2 = 10000 или log(10000) = 2xlog(100)).


456 ЗАНЯТИЕ 19. Классы наборов библиотеки STL


Однако даже этого существенного увеличения производительности по сравнению с не отсортированным контейнером (где продолжительность поиска прямо пропорциональна количеству элементов) иногда недостаточно. Программисты и математики упорно ищут способ осуществления вставки и сортировки за постоянное время, и одним из них явля­ ется реализация на базе хеша, где хеш-функция используется для определения индекса сортировки. Добавляемые в хеш-набор элементы сначала обрабатываются хеш-функцией, которая создает уникальный индекс ячейки, в которой они размещаются. Библиотека STL предоставляет свой вариант хеш -набора в виде класса контейнера s t d : :u n o r d e r e d _ s e t .


СОВЕТ Чтобы использовать классы контейнеров std: :unordered_set или



Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   317   318   319   320   321   322   323   324   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish