Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (28.12.2006 в 13:38)
Вторую задачу можно было бы решить следующим образом
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
  // Коллекция
  vector<int> coll;
  // Итератор
  vector<int>::iterator pos;

  try
  {
    coll.push_back(-10);
    coll.push_back(-9);
    coll.push_back(-8);
    coll.push_back(-7);
    coll.push_back(-6);
    coll.push_back(1);
    coll.push_back(2);
    coll.push_back(3);
    coll.push_back(4);

    // Находим первый положительный элемент
    pos = find_if(coll.begin(), coll.end(), bind2nd(greater<int>(),0));
    // Вычисляем сумму элементов, после первого
    // положительного элемента
    int summ = 0;
    for(; pos != coll.end(); ++pos) summ += *pos;
    // Выводим результат
    cout << summ << endl;
  }
  catch(bad_alloc)
  {
    cout << "Не удалось выделить память под коллекцию\n";
  }

  return 0;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: