|
Программирование >> Инициализация объектов класса, структура
template < class InputIterator, class Type > iterator traits<InputIterator>::distance type count( InputIterator first, Inputlterator last, const Type& value ); count() сравнивает каждый элемент со значением value в диапазоне, ограниченном парой итераторов [first,last) , с помощью оператора равенства. Алгоритм возвращает число элементов, равн1х value. (Отметим, что в имеющейся у нас реализации стандартной библиотеки поддерживается более ранняя спецификация count () .) * от RogueWave поддерживается более ранняя версия, в которой * типа distance type еще не было, так что count() * возвращала результат в последнем аргументе * * вот как доен влядеть вызов: * * typedef iterator traits<InputIterator>:: * distance type dis type; * * dis type elem count; * elem count = count( textlines.begin(), textlines.end(), * search item ); ************************************************************** ********* int elem count = 0; list<string,allocator>::iterator ibegin = textlines.begin(), iend = textlines.end(); устаревшая форма count() count( ibegin, iend, search item, elem count ); cout << count(): << search item << встречается << elem count << раз(а)\n ; #include <algorithm> #include <string> #include <list> #include <iterator> #include <assert.h> #include <iostream.h> #include <fstream.h> /*********************************************************************** * протанн текст: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he tells her, magical but untamed. Daddy, shush, there is no such thing, she tells him, at the same time wanting him to tell her more. Shyly, she asks, I mean, Daddy, is there? ************************************************************************ * программа водит: * count(): fiery встречается 2 раз( а) ************************************************************************ int main() ifstream infile( alice emma ); assert ( infile != 0 )Г list<string,allocator> textlines; typedef list<string,allocator>::difference type diff type; istream iterator< string, diff type > instream( infile ), eos; copy( instream, eos, back inserter( textlines )); string search item( fiery ); /************************************************************* ******** * пречание: не показан интерфейс count(), принят в * стандартной биботеке. В текущей реазац библиотеки template < class Inputlterator, class Predicate > iterator traits<InputIterator>::distance type count if( InputIterator first, Алгоритм count if() InputIterator last, Predicate pred ); count if() применяет предикат pred к каждому элементу из диапазона, ограниченного парой итераторов [first,last) . Алгоритм сообщает, сколько раз предикат оказался равным true.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |