Ds\Deque
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Ds\Deque
Референца за `class.ds-deque.php` со подобрена типографија и навигација.
The Deque class
Класата Vector
Вовед
Класата Deque Ds\Queue.
Deque (се изговара „дек“) е низа од вредности во континуиран бафер што автоматски расте и се намалува. Името е вообичаена кратенка од „опашка со двојно завршување“ и се користи внатрешно од Ds\Vector Два покажувачи се користат за следење на главата и опашката. По покажувачите можат да „се превртат“ крајот на баферот, што ја елиминира потребата да се поместат други вредности за да се направи простор. Ова ги прави shift и unshift многу брзи — нешто со што
не може да се натпреварува. ((head + position) % capacity).
Предности
- Поддржува синтакси на низа (квадратни загради).
- Вектор е низа од вредности во континуиран бафер што автоматски расте и се намалува. Тоа е најефикасната секвенцијална структура бидејќи индексот на вредноста е директно мапирање на нејзиниот индекс во баферот, а факторот на растење не е ограничен на одреден множител или експонент. array Користи помалку вкупна меморија од
- Автоматски ослободува распределена меморија кога нејзината големина ќе падне доволно ниско.
- get(), set(), push(), pop(), shift()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во unshift() се сите O(1).
Слабости
- Пристапот до вредност по индекс бара превод помеѓу индексот и неговата соодветна позиција во баферот:
- insert() and remove() Капацитетот мора да биде моќност од 2.
Синопсис на класата
Претходно дефинирани константи
Содржина
- Ds\Deque::allocate — Алоцира доволно меморија за потребен капацитет
- Ds\Deque::apply — Ги ажурира сите вредности со примена на функција за повик на секоја вредност
- Ds\Deque::capacity — Враќа тековен капацитет
- Ds\Deque::clear — Ги отстранува сите вредности од деката
- Ds\Deque::__construct — Создава нова инстанца
- Ds\Deque::contains — Определува дали деката ги содржи дадените вредности
- Ds\Deque::copy — Враќа плитка копија од деката
- Ds\Deque::count — Враќа број на вредности во колекцијата
- Ds\Deque::filter — Создава нова дека користејќи повикувач за да утврди кои вредности да се вклучат
- Ds\Deque::find — Се обидува да го најде индексот на вредноста
- Ds\Deque::first — Враќа прва вредност во деката
- Ds\Deque::get — Враќа вредност на даден индекс
- Ds\Deque::insert — Вметнува вредности на даден индекс
- Ds\Deque::isEmpty — Враќа дали деката е празна
- Ds\Deque::join — Ги спојува сите вредности како стринг
- Ds\Deque::jsonSerialize — Враќа претстава што може да се конвертира во JSON
- Ds\Deque::last — Враќа последна вредност
- Ds\Deque::map — Враќа резултат од примена на callback на секоја вредност
- Ds\Deque::merge — Враќа резултат од додавање на сите дадени вредности во деката
- Ds\Deque::pop — Отстранува и враќа последна вредност
- Ds\Deque::push — Додава вредности на крајот од деката
- Ds\Deque::reduce — Го намалува деката на една вредност користејќи функција за враќање
- Ds\Deque::remove — Отстранува и враќа вредност по индекс
- Ds\Deque::reverse — Го превртува деката на место
- Ds\Deque::reversed — Враќа реверзирана копија
- Ds\Deque::rotate — Ротира деката за даден број на ротации
- Ds\Deque::set — Ажурира вредност на даден индекс
- Ds\Deque::shift — Отстранува и враќа прва вредност
- Ds\Deque::slice — Враќа под-дека од даден опсег
- Ds\Deque::sort — Ја сортира деката на место
- Ds\Deque::sorted — Враќа сортирана копија
- Ds\Deque::sum — Враќа збир на сите вредности во деката
- Ds\Deque::toArray — Го претвора деката во низа
- Ds\Deque::unshift — Додава вредности на почетокот од деката