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

// печатается: список ilist равен ilist2? Да.

res = equal( ilist.begin(), ilist.end(), ilist2.begin() );

cout "список ilist равен ilist2? "

( res ? "Да" : "Нет" ) ".\n";

// false: 0, 2, 8 не являются равными и нечетными

// печатается: список ilist equal_and_odd() ilist2? Нет.

res = equal( ilist.begin(), ilist.end(),

ilist2.begin(), equal_and_odd() );

cout "список ilist equal_and_odd() ilist2? "

( res ? "Да" : "Нет" ) ".\n";

return 0;

}

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

template class ForwardIterator, class Type

pair ForwardIterator, ForwardIterator

equal_range( ForwardIterator first,

ForwardIterator last, const Type &value );

template class ForwardIterator, class Type, class Compare

pairForwardIterator, ForwardIterator

equal_range( ForwardIterator first,

ForwardIterator last, const Type &value,

Compare comp );

equal_range() возвращает пару итераторов: первый представляет значение итератора, возвращаемое алгоритмом lower_bound(), второй - алгоритмом upper_bound(). (О семантике этих алгоритмов рассказано в их описаниях.) Например, дана последовательность:

int ia[] = {12,15,17,19,20,22,23,26,29,35,40,51};

Обращение к equal_range() со значением 21 возвращает пару итераторов, в которой оба указывают на значение 22. Обращение же со значением 22 возвращает пару итераторов, где first указывает на 22, а second - на 23. В первом варианте при сравнении используется оператор "меньше", определенный для типа элементов контейнера; во втором - предикат comp.

#include algorithm

#include vector

#include utility

#include iostream.h

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

последовательность элементов массива после сортировки:

12 15 17 19 20 22 23 26 29 35 40 51

результат equal_range при поиске значения 23:

*ia_iter.first: 23 *ia_iter.second: 26

результат equal_range при поиске отсутствующего значения 21:

*ia_iter.first: 22 *ia_iter.second: 22

последовательность элементов вектора после сортировки:

51 40 35 29 26 23 22 20 19 17 15 12

результат equal_range при поиске значения 26:

*ivec_iter.first: 26 *ivec_iter.second: 23

результат equal_range при поиске отсутствующего значения 21:

*ivec_iter.first: 20 *ivec_iter.second: 20

*/

int main()

{

int ia[] = { 29,23,20,22,17,15,26,51,19,12,35,40 };

vector int, allocator ivec( ia, ia+12 );

ostream_iterator int ofile( cout, " " );

sort( &ia[0], &ia[12] );

cout "последовательность элементов массива после сортировки:\n";

copy( ia, ia+12, ofile ); cout "\n\n";

pair int*,int* ia_iter;

ia_iter = equal_range( &ia[0], &ia[12], 23 );

cout "результат equal_range при поиске значения 23:\n\t"

"*ia_iter.first: " *ia_iter.first "\t"

"*ia_iter.second: " *ia_iter.second "\n\n";

ia_iter = equal_range( &ia[0], &ia[12], 21 );

cout "результат equal_range при поиске "

"отсутствующего значения 21:\n\t"

"*ia_iter.first: " *ia_iter.first "\t"

"*ia_iter.second: " *ia_iter.second "\n\n";

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

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

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

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

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

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

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

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

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