Читаем C++ для начинающих полностью

subvec.begin(), subvec.end(),

equal_toint() );

assert( found_it2 == ivec.begin()+10 );

cout "ok: find_end правильно вернула начало "

"последнего вхождения последовательности: 3,7,6!\n";

}

<p>Алгоритм find_first_of()</p>

template class ForwardIterator1, class ForwardIterator2

ForwardIterator1

find_first_of( ForwardIterator1 first1, ForwardIterator1 last1,

ForwardIterator2 first2, ForwardIterator2 last2 );

template class ForwardIterator1, class ForwardIterator2,

class BinaryPredicate

ForwardIterator1

find_first_of( ForwardIterator1 first1, ForwardIterator1 last1,

ForwardIterator2 first2, ForwardIterator2 last2,

BinaryPredicate pred );

Последовательность, ограниченная парой [first2,last2), содержит элементы, поиск которых ведется в последовательности, ограниченной итераторами [first1,last1). Допустим, нужно найти первую гласную в последовательности символов synesthesia. Для этого определим вторую последовательность как aeiou. find_first_of() возвращает итератор, указывающий на первое вхождение любого элемента последовательности гласных букв, в данном случае e. Если же первая последовательность не содержит ни одного элемента из второй, то возвращается last1. В первом варианте используется оператор равенства, определенный для типа элементов контейнера, а во втором - бинарный предикат pred.

#include algorithm

#include vector

#include string

#include iostream.h

int main()

{

string s_array[] = { "Ee", "eE", "ee", "Oo", "oo", "ee" };

// возвращает первое вхождение "ee" -- &s_array[2]

string to_find[] = { "oo", "gg", "ee" };

string *found_it =

find_first_of( s_array, s_array+6,

to_find, to_find+3 );

// печатается:

// найдено: ee

// &s_array[2]: 0x7fff2dac

// &found_it: 0x7fff2dac

if ( found_it != &s_array[6] )

cout "найдено: " *found_it "\n\t"

"&s_array[2]:\t" && &s_array[2] && "\n\t"

"&found_it:\t" && found_it && "\n\n";

vector string, allocator svec( s_array, s_array+6);

vector string, allocator svec_find( to_find, to_find+2 );

// возвращает вхождение "oo" -- svec.end()-2

vector string, allocator ::iterator found_it2;

found_it2 = find_first_of(

svec.begin(), svec.end(),

svec_find.begin(), svec_find.end(),

equal_tostring() );

// печатает:

// тоже найдено: oo

// &svec.end()-2: 0x100067b0

// &found_it2: 0x100067b0

if ( found_it2 != svec.end() )

cout "тоже найдено: " *found_it2 "\n\t"

"&svec.end()-2:\t" && svec.end()-2 && "\n\t"

"&found_it2:\t" && found_it2 && "\n";

}

<p>Алгоритм for_each()</p>

template class InputIterator, class Function

Function

for_each( InputIterator first,

InputIterator last, Function func );

for_each() применяет объект-функцию func к каждому элементу в диапазоне [first,last). func не может изменять элементы, поскольку итератор записи не гарантирует поддержки присваивания. Если же модификация необходима, следует воспользоваться алгоритмом transform(). func может возвращать значение, но оно игнорируется.

#include algorithm

#include vector

#include iostream.h

template class Type

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных