![]() |
|
Программирование >> Операторы преобразования типа
PRINT ELEMENTS(coll2. \ncoll2: О Меняет местами элементы интервала [beg1,end1) с соответствующими элементами интервала [beg2,...). О Возвращает позицию за последним переставленным элементом во втором интервале. О Перед вызовом необходимо убедиться в том, что второй интервал имеет достаточный размер, О Интервалы не должны перекрываться. О Для обмена элементов в контейнерах одного типа рекомендуется использовать функцию swapO класса контейнера, поскольку она обычно выполняется с постоянной сложностью (с. 241). О Сложность линейная (numberOfElements операций перестановки). Пример использования алгоритма swap ranges(): algo/swapl,срр #1nclude algostuff.hpp using namespace std: int mainO ( vector<1nt> colli; deque<int> col 12; INSERT ELEMENTS(colll.l.9); INSERT ELEMENTS(coll2.11.23): PRINT ELEMENTS(colll. colli: ); PRINT ELEMENTS(coll2. coll2: ): Элементы colli меняются местами с соответствующими элементами со112 deque<int>::iterator pos: pos = swap ranges (colU.beginO. colli.endO. Первый интервал С0112.beginO): Второй интервал PRINT ELEMENTS(col11, \ncol 11: ): PRINT ELEMENTS(coll2. coll2: ); If (pos != coll2.end()) ( cout first element not modified; *pos endl: Зеркальный обмен трех первых элементов со112 с тремя последними элементами swap ranges (со112.beginO. coll2.begin()+3. Первый интервал С0112.rbeginO); Второй интервал Первый вызов swap range5() меняет местами элементы colli с соответствующими элементами со112. Остальные элементы со112 не изменяются. Алгоритм swap rangesO возвращает позицию первого элемента, который остался без изменений. Второй вызов меняет местами первые и последние три элемента со112. Один из итераторов является обратным, поэтому обмен происходит с зеркальным отображением злементов. Программа выводит следующий результат: colli: 12 3 4 5 6 7 8 9 С0112: И 12 13 14 15 16 17 18 19 20 21 22 23 colli: 11 12 13 14 15 16 17 18 19 С0112: 1 2 3 4 5 6 7 8 9 20 21 22 23 first element not modified: 20 С0112: 23 22 21 4 5 6 7 8 9 20 3 2 1 Присваивание Заполнение интервала повторяющимся значением void fill (Forwardlterator йед. Forwardlterator еле/, const Т& newValue) void fill n (Outputlterator beg. Size nm. const T& newValue) О Алгоритм fill() присваивает значение newValue каждому элементу в интервале \beg,end). О Алгоритм filLn() присваивает значение newValue первым пит элементам в интервале, начинаюпемся с beg. О Перед вызовом необходимо убедиться в том, что приемный интервал имеет достаточный размер, или использовать итераторы вставки. О Сложность линейная (numberOfElements или пит присваиваний соответст-вегпю). Пример использования алгоритмов fill() и Я11 п(). algo/filll.cpp #include algostuff,hpp using namespace std: int mainO { Вывод десяти экземпляров 7.7 fill n(ostream iterator<float>(cout. ), Начало приемника 10. Счетчик 7.7): Новое значение cout endl: llst<string> coll: Вставка девяти экземпляров hello fill n(bacl< inserter(coll). Начало приемника 9. Счетчик hello ); Новое значение PRINT ELEMENTS(coll. coll: ); Замена всех элементов строкой f1ll(con.begln(). coll ,end(). again ): PRINT ELEMENTS(coll. coll: ): again Приемник Новое значение Замена всех элементов, кроме двух, строкой hi fill n(coll.beginO. Начало приемника coll.size()-2. Счетчик hi ): Новое значение PRINT ELEMENTS(coll, coll: ): Замена элементов от второго до лредлоследнего строкой hmmm list<string>::iterator posl. pos2: posl = coll .beginO: pos2 = coll .endO; fill (++posl. --pos2. Приемник hmmm ); Новое значение PRINT ELEMENTS(COll. COll: ); При первом вызове алгоритм filLnQ используется для вывода определенного числа значений. Остальные вызовы fill() и fill n() вставляют и заменяют значения в списке строк. Результат выполнения программы выглядит так: 7.7 7,7 7.7 7.7 7,7 7.7 7.7 7.7 7.7 7.7 coll coll coll coll hello hello hello hello hello hello hello hello hello again again again again again again again again again hi hi hi hi hi hi hi again again hi hmmm hmmm hmmm hmmm hmmm hmrrm hmmm again Присваивание сгенерированных значений void generate (Forwardlterator beg, Forwardlterator end. Func op) void generate n (Outputlterator beg. Func op) Size num.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |