Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Мова програмування С ++

Реферат Мова програмування С ++





рігаються в deque. Аллокатор, використовуваний deque, специфікований Allocator; за замовчуванням це стан- дротяні клас для аллокаторов. Для переважної більшості додатків ви будете просто застосовувати аллокатор за замовчуванням, то ж стосується всього коду цієї глави. Однак ви можете визначати власні типи аллокаторов, коли потрібна спеціальна схема виділення пам'яті.


2.1.4 Ітератори

Ітератори - це об'єкти, які поводяться більш-менш подібно вказівниками. Вони надають можливість виконувати циклічну обробку елементів контейнера - подібно до того, як ви використовуєте покажчик для організації циклу по масиву. Існує п'ять типів ітераторів (см.ріс.2)


Рис.2-Типи ітераторів


Взагалі ітератор, що має більш широкі можливості доступу, може застосовуватися замість ітератора з меншими можливостями. Наприклад, прямий ітератор може бути використаний замість вхідного ітератора. Ітератори обробляються подібно вказівниками. Зворотні ітератори небудь двунаправлен, або довільного доступу, що переміщуються по послідовності в зворотному напрямку. Таким чином, якщо зворотний ітератор указує на кінець послідовності, то збільшення цього ітератора на одиницю перемістить його на елемент, що передує кінцевому.

Всі ітератори повинні підтримувати типи операцій з покажчиками, допустимі для їх категорії. Наприклад, клас вхідного ітератора повинен підтримувати операції - gt ;, ++, *, == і! =. Більше того, операція * не може використовуватися для присвоювання значення.

На відміну від вхідного, ітератор довільного доступу повинен підтримувати операції - gt ;, +, ++, -, -, *, lt ;, gt ;, lt; =, gt; =, -=, + =, ==,!=і [].

Вдобавок операція * повинна дозволяти присвоювання. Операції, підтримувані кожним типом ітераторів, перераховані нижче (см.ріс.3).


Рис.3-операется ітераторів


При посиланнях на різні типи ітераторів в описах шаблонів будуть використані такі терміни (см.ріс.4).


Рис.4-Терміни ітераторів


. 1.5 Алгоритми

Алгоритми виконують дії над контейнерами. Їх можливості включають ініціалізацію, сортування, пошук, злиття, заміну і трансформацію вмісту контейнера. Багато алгоритми оперують діапазонами елементів в контейнері.

Алгоритми:

find () - цей алгоритм шукає перший елемент у контейнері, значення якого дорівнює зазначеному. () - підраховує, скільки елементів в контейнері мають дане значення. () - алгоритм сортування. () - шукає цілу послідовність значень, задану одним контейнером, в іншому контейнері. () - цей алгоритм працює з трьома контейнерами, об'єднуючи елементи двох з них в третій, цільової контейнер._each () -цей алгоритм дозволяє виконувати якусь дію над кожним елементом в контейнері. Ви пишете власну функцію, щоб визначити, яка саме дія слід виконувати. Ця ваша функція не має права модифікувати дані, але вона може їх виводити або використовувати їх значення у своїй роботі. () - Цей алгоритм теж робить щось з кожним елементом контейнера, але ще і поміщає результат в інший контейнер (або в той же ). Знову ж таки, пользовательcкая функція визначає, що саме робити з даними, причому тип повертається нею результату повинен відповідати типу цільового контейнера.


2.1.6 Списки і їхні методи

Контейнер STL під назвою список являє собою двічі зв'язний список, в якому кожен елемент зберігає покажчик на сусіда зліва і справа. Контейнер містить адресу першого і останнього елементів, тому доступ до обох кінців списку здійснюється дуже швидко.

Методи._front (), front () і pop_front () аналогічні методам pop_back () з векторів.


. 1.7 Вектор. Його методи і переваги

Вектори - це, так би мовити, розумні масиви. Вони займаються автоматичним розміщенням себе в пам'яті, розширенням і звуженням свого розміру в міру вставки або видалення даних. Вектори можна використовувати в якійсь мірі як масиви, звертаючись до елементів за допомогою звичного оператора []. Випадковий доступ виконується дуже швидко у векторах. Також досить швидко здійснюється додавання (або проштовхування) нових даних в кінець вектора. Коли це відбувається, розмір вектора автоматично збільшується для того, щоб було, куди покласти нове значення.

Так само існує досить велика кількість корисних методів для вектора: _back () - вставляє значення свого аргументу в кінець вектора () - повертає поточне число елементів, що містяться в контейнері. () - обмінює дані одного вектора на дані іншого, при цьому порядок проходження елементів не змінюється () - повертає значення останнього ел...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Власні вектора і власні значення лінійного оператора
  • Реферат на тему: Алгоритм створення бази даних &Значення коефіцієнта і показників ступеня у ...
  • Реферат на тему: Реалізація концепції контейнерів і ітераторів на прикладі односпрямованого ...
  • Реферат на тему: Історія формування поняття &алгоритм&. Найвідоміші алгоритми в історії мат ...
  • Реферат на тему: Цифрове арифметико-логічний пристрій, що дозволяє виконувати операції відні ...