Послідовний контейнер

В програмуванні, послідовний контейнер це ціла група шаблонів класів стандартної бібліотеки мови C++, які реалізують логіку контейнера, що виконує функцію зберігання елементів даних. Будучи шаблонами, вони можуть використовуватися для зберігання довільних елементів, як для цілих чисел так і для користувацьких класів. Спільною властивістю всіх послідовних контейнерів в тому, що доступ до елементів відбувається послідовно. Як і всі інші стандартні компоненти бібліотеки, вони знаходяться в просторі імен std.

В останньому стандарті С++ визначені наступні контейнери: array, vector, list, forward_list, deque. Кожен з цих контейнерів реалізує різні алгоритми зберігання даних, це означає, що вони мають різну швидкодію при виконанні різних операцій:[1]

Оскільки кожен з контейнерів потребує можливості копіювати свої елементи для правильного функціонування, тип даних елементу має виконувати вимоги CopyConstructible і Assignable (мати конструктор копій і оператор присвоювання).[2] У даного контейнера, всі елементи мають бути одного типу. Наприклад, не можливо одночасно зберігати дані типу char і int в одному контейнері.

Історія

Спочатку, тільки були визначені лише класи vector, list, deque. До стандартизації мови C++ в 1998, вони були частиною Стандартної бібліотеки шаблонів, що була опублікована компанією SGI.

Контейнер array вперше з’явився у декількох книжках під різними назвами. Згодом він був вбудований в в набір бібліотек Boost C++ і був запропонований в стандартну бібліотеку C++. Мотивацією додавання контейнера array було те, що він вирішував дві проблеми масивів Cі-стилю: нестачу STL-подібного інтерфейсу і неможливість копіювати його як будь-який інший об'єкт. Він вперше з’явився в C++ TR1 і згодом став частиною стандарту C++11.

Контейнер forward_list було додано до C++11 як більш просторово-ефективна альтернатива стандартному контейнеру list для випадків, коли зворотній прохід ітератора не потрібний.

Властивості

array, vector і deque - всі ці контейнери підтримують довільний доступ до елементів. list підтримує двонаправлену ітерацію, тоді як forward_list підтримує ітерування лише в одному напрямку.

array не має функції додавання чи видалення елементів. vector дозволяє швидко додавати чи видаляти елементи в кінці вектора. Будь-яке додавання чи видалення елементів не в кінці вектора потребує виконувати операцію копіювання елементів від позиції додавання елементів до кінця вектору. Ітератори над елементами, з якими відбулися такі дії стають недійсними. Насправді, будь-яке додавання має шанс порушити і зробити недійсними всі ітератори. Крім того, якщо виділене сховище пам'яті у vector замале, для додавання нових елементів, буде виділено новий масив в пам'яті, всі елементи будуть скопійовані і перенесені у новий масив, а старий масив буде вивільнено. Контейнери deque, list і forward_list підтримують операції швидкого додавання або видалення елементів, в будь-яке місце контейнеру. list і forward_list зберігають валідність ітераторів при таких операціях, а deque робить їх всі недійсними.

Вектор

Елементи контейнера vector зберігаються послідовно.[3] Як і всі реалізації динамічних масивів, вектори дозволяють ефективно використовувати пам'ять і мають добру локалізацію посилань[en] і оптимальне використання кешу. На відміну від інших STL контейнерів, таких як двобічні черги (deque) і списки (list), вектори дозволяють вказувати початковий розмір контейнера.

Вектори дозволяють здійснювати довільний доступ; таким чином, що до елементів вектору можна доступатися таким самим чином як і до елементів масивів (по індексу в масиві).

Примітки

  1. Josuttis, Nicolai (1999). C++ Standard Library - A Tutorial and Reference. Addison-Wesley.
  2. ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §23.1 Container requirements [lib.container.requirements] para. 4
  3. ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §23.2.4 Class template vector [lib.vector] para. 1

Read other articles:

For other uses, see Light at the End of the Tunnel (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Light at the End of the Tunnel – news · newspapers · books · scholar · JSTOR (July 2015) (Learn how and when to remove this template message) 1987 compilation album by The DamnedThe Light ...

 

Kalpana SarojKalpana SarojLahir1961 (1961) (usia 63)Roperkheda, Maharashtra, IndiaTempat tinggalMumbai, IndiaKebangsaanIndianPekerjaanChief Executive Officer, Kamani TubesKekayaan bersih US$ 112 millionSuami/istriSamir Saroj ​ ​(m. 1980; meninggal 1989)​ShubhkaranAnakSeema Saroj, Amar SarojSitus webwww.kalpanasaroj.com Kalpana Saroj adalah wirausaha perempuan India dan pembicara TEDx,[1] lahir di desa Roperkheda di Maharashtra...

 

Keuskupan Málaga–SoatáDioecesis Malagensis-SoatensisLokasiNegaraKolombiaProvinsi gerejawiBucaramangaStatistikLuas7.466 km2 (2.883 sq mi)Populasi- Total- Katolik(per 2004)171.110161,133 (94.2%)InformasiRitusRitus LatinPendirian7 Juli 1987 (36 tahun lalu)KatedralCatedral de La Inmaculada Concepción in MálagaKonkatedralCo-Catedral de La Inmaculada Concepción in SoatáKepemimpinan kiniPausFransiskusUskupVíctor Manuel Ochoa CadavidPetaSitus webdiocesismal...

Liza MinnelliMinnelli pada tahun 2011LahirLiza May MinnelliPekerjaanAktrisPenyanyiTahun aktif1949–sekarangSuami/istriPeter Allen (1967–1974) Jack Haley, Jr. (1974–1979) Mark Gero (1979–1992) David Gest (2002–2003) Liza May Minnelli (lahir 12 Maret 1946) merupakan seorang aktris dan penyanyi Amerika Serikat yang memenangkan Academy Award dan Tony Award. Dia dilahirkan di Los Angeles. Dia berkarier di dunia film sejak tahun 1949. Filmografi In the Good Old Summertime (1949) The ...

 

Álvaro Arbeloa Arbeloa pada tahun 2018Informasi pribadiNama lengkap Álvaro Arbeloa Coca[1]Tanggal lahir 17 Januari 1983 (umur 41)Tempat lahir Salamanca, SpanyolTinggi 1,84 m (6 ft 1⁄2 in)[2]Posisi bermain BekInformasi klubKlub saat ini Real Madrid U-19 (Pelatih)Karier junior1995–2001 Zaragoza2001–2002 Real MadridKarier senior*Tahun Tim Tampil (Gol)2002–2003 Real Madrid C 16 (0)2003–2006 Real Madrid B 84 (0)2004–2006 Real Madrid 2 (0)2006�...

 

Ini adalah nama Batak Angkola, marganya adalah Batubara. Ucok BabaLahirUsnan Batubara10 Mei 1971 (umur 52)Sipirok, Sumatera Utara, IndonesiaNama lainUcok BabaPekerjaanpemeranpresenterpelawakpenyanyiTahun aktif1993—sekarangTinggi91 cm (3 ft 0 in)[1]Partai politikPPPSuami/istriRina Angelina ​(m. 1997)​[2]Anak5Karier musikGenrePop MelayuInstrumenVokal Usnan Batubara (lahir 10 Mei 1971), dikenal sebagai Ucok Baba, adalah...

1963 novel by Philip K. Dick Dr. Bloodmoney, or How We Got Along After the Bomb Cover of first edition (paperback)AuthorPhilip K. DickCover artistJack GaughanCountryUnited StatesLanguageEnglishGenreScience fictionPublisherAce BooksPublication date1965Media typePrint (hardback & paperback)Pages222 Dr. Bloodmoney, or How We Got Along After the Bomb is a 1965 science fiction novel by American writer Philip K. Dick. It was nominated for the Nebula Award for Best Novel in 1965.[1...

 

2024 Wyoming House of Representatives election ← 2022 November 5, 2024 2026 → All 62 seats in the Wyoming House of Representatives32 seats needed for a majority   Leader Albert Sommers Mike Yin Party Republican Democratic Leader since January 10, 2023 January 10, 2023 Leader's seat 20th 16th Last election 57 5 Current seats 57 5 Seats needed 27 Map of the incumbents:     Democratic incumbent    &#...

 

إدوارد يانغ   معلومات شخصية الميلاد 6 نوفمبر 1947(1947-11-06)شانغهاي[1]  الوفاة 29 يونيو 2007 (59 سنة)لوس أنجلوس  سبب الوفاة سرطان القولون  مكان الدفن مقبرة حديقة قرية ويستوود ميموريال  مواطنة تايوان  عدد الأولاد 1   الحياة العملية المدرسة الأم جامعة فلوريداجامعة ك...

Questa voce sull'argomento cantanti statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. John BushJohn Bush con gli Armored Saint nel 2018 Nazionalità Stati Uniti GenereHeavy metalThrash metalGroove metal Periodo di attività musicale1982 – in attività StrumentoVoce EtichettaMetal Blade Gruppi attualiArmored Saint Album pubblicati12 (5 con gli Anthrax) Studio11 Racco...

 

Airport in Ventura County, CaliforniaNaval Outlying Landing Field San Nicolas IslandIATA: noneICAO: KNSIFAA LID: NSISummaryAirport typeMilitaryOperatorUS NavyLocationSan Nicolas Island, Ventura County, CaliforniaElevation AMSL506 ft / 154.2 mCoordinates33°14′23″N 119°27′29″W / 33.23972°N 119.45806°W / 33.23972; -119.45806Runways Direction Length Surface ft m 12/30 10,002 3,049 PEM Naval Outlying Landing Field San Nicolas Island or NOLF San Ni...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要擴充。 (2013年1月1日)请協助改善这篇條目,更進一步的信息可能會在討論頁或扩充请求中找到。请在擴充條目後將此模板移除。 此條目需要补充更多来源。 (2013年1月1日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的...

 

5th Panchen Lama of the Gelug School of Tibetan Buddhism Lobsang Yeshe Part of a series onTibetan Buddhism Schools Nyingma Kadam Sakya Bodong Kagyu Jonang Gelug Rimé Key personalities First dissemination Padmasambhāva Śāntarakṣita Kamalaśīla Songtsen Gampo Trisong Detsen Ralpacan Second dissemination Atiśa Talika Abhayakirti Niguma Sukhasiddhi Milarepa Nyingma Yeshe Tsogyal Longchenpa Jigme Lingpa Patrul Rinpoche Dudjom Lingpa Mipham Kagyu Marpa Rangjung Dorje Jonang Dolpopa Taranath...

 

Pour les articles homonymes, voir Callimaque. CallimaqueNaissance Athènes (?)Nom dans la langue maternelle ΚαλλίμαχοςActivités Sculpteur, architecte, orfèvreLieu de travail AthènesŒuvres principales Vénus Genitrixmodifier - modifier le code - modifier Wikidata Stèle funéraire attique d'Hègèsô, attribuée à Callimaque, musée national archéologique d'Athènes. Callimaque (en grec ancien : Καλλίμαχος / Kallímakhos), surnommé Catatexitechnos (« trop...

2003 single by Billy TalentThe ExSingle by Billy Talentfrom the album Billy Talent ReleasedDecember 23, 2003GenrePost-hardcore, pop punkLength2:40LabelAtlanticSongwriter(s)Billy TalentProducer(s)Gavin BrownBilly Talent singles chronology Try Honesty (2003) The Ex (2003) River Below (2004) Music videoThe Ex on YouTube The Ex is a song by Canadian rock group Billy Talent. It was released in December 2003 as the second single from their debut self-titled album. Music video The video for The Ex, ...

 

Railroad land grants in the United States made in the 1850s to 1870s, were instrumental in the building the nation's railway network in the Central United States west of Chicago. They enabled the rapid settlement of new farm and ranch lands as well as mining centers. Overall, government land grants to Western US railroads during the 1850s to 1880s played a crucial role in shaping the economic, social, and geographic landscape of the United States, laying the foundation for much of the nation'...

 

Traditional French-Canadian sash A fingerbraiding modern arrow sash handmade in 2007 (with details of the patterns) A machine-woven modern arrow sash The ceinture fléchée [sɛ̃tyʁ fleʃe] (French, 'arrowed sash') or ('arrow sash') is a type of colourful sash, a traditional piece of Québécois clothing linked to at least the 17th century (of the Lower Canada, Canada East and early confederation eras). The Métis also adopted and made ceintures fléchées (French-Canadian and later...

اللغة اللادينية الاسم الذاتي (بlld: ladin)‏    الناطقون 30000 [1]  الكتابة إخطاطة لاتينية  النسب لغات هندية أوروبية لغات هندية أوروبيةلغات إيطاليقيةلغات رومانسيةاللغات الرومانسية الغربيةاللغات الغالية الإيبيريةاللغات الغالية الرومانسيةGallo-Rhaetian (en) Rhaeto-Romance (en) الل�...

 

Athénée royal Isabelle Gatti de Gamond Histoire et statut Fondation 1864 par Isabelle Gatti de Gamond Type École secondaire générale publique Administration Tutelles Wallonie-Bruxelles Enseignement Réseau Enseignement officiel Directeur Bertrand Wilquet Études Population scolaire 1 012 (2017) Enseignants 103 (2017) Localisation Ville Bruxelles Pays Belgique Site web www.argattidegamond.be Données clés Coordonnées 50° 51′ nord, 4° 21′ est Géolocalisat...