русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Алгоритм search()


Дата додавання: 2014-04-22; переглядів: 866.


Деякі алгоритми оперують одночасно двома контейнерами. Наприклад, якщо алгоритм find() шукає вказане значення в одному контейнері, алгоритм serch() шукає цілу послідовність значень, задану одним контейнером, в іншому контейнері. Приклад його використання приведено в програмі 15.4

#include<iostream>

#include<algorithm>

#include<conio>

using namespace std;

int source[]={11,44,33,11,22,33,11,22,44};

int pattern[]={11,22,33};

int main()

{ int *ptr;

ptr=search(source,source+9,pattern,pattern+3);

if(ptr==source+9)//зупинилися після останнього

cout<<"Spivpadinna ne znajdeno\n";

else

cout<<"Spivpadinna v pozycii "<<(ptr-source)<<endl;

getch();

return 0;

}

 

Програма 15.4

Результат роботи програми

 

Алгоритм шукає послідовність (11,12,13), задану масивом pattern, в масиві source. Якщо значення ітератора ptr опиняються за межами масиву source, виводиться відповідне повідомлення.

Параметрами алгоритму serch() і подібних на нього не зобов’язані бути контейнери одного типу. Вихідний контейнер може бути, наприклад, вектором, а маска пошуку – масивом. така універсальність є сильною стороною STL.

 


<== попередня лекція | наступна лекція ==>
Алгоритм sort() | Алгоритм merge()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн