#i nclude #include “I
Автор admin
Среда, 3 июня 2009 11:32
#i nclude #include “Inventory.h” #include “PrintSequence.h” using namespace std: // Вычисление сводной информации: class InvAccum { int quantity: int value; public: InvAccumO : quantity(O). value(O) {} void operatorO (const Inventory& inv) { quantity += inv.getQuantityO: value += inv.getQuantityO * inv.getValueO: } friend ostream& operator«(ostream& os, const InvAccum& ia) { return os « “total quantity: ” « ia.quantity 318 Глава 6 • Обобщенные алгоритмы « “. total value: ” « ia.value: } }: int mainO { vector vi: srand(time(0)): // Randomize generate_n(back_inserter(vi). 15. InvenGenO): print(vi .beginO. vi.endO. “vi”): InvAccum ia = for_each(vi .beginO.vi .endO. InvAccumO): cout « ia « endl: } ///:- Операторная функция operator() класса InvAccum вызывается с одним аргументом, как того требует алгоритм for_each(). По мере перебора элементов интервала алгоритм for_each() берет каждый элемент и передает его операторной функции InvAccum::operator(), где производятся вычисления и сохраняется результат. В конце перебора for_each() возвращает объект InvAccum, и содержимое этого объекта выв
Комментарии закрыты.
Последние комментарии