Форум С++

 

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

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

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

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

bool absLess(int elem1, int elem2)
{
  return abs(elem1) < abs(elem2);
}

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

  try
  {
    coll.push_back(1);
    coll.push_back(2);
    coll.push_back(3);
    coll.push_back(4);
    coll.push_back(-10);

    // Находим максимальный элемент
    pos = max_element(coll.begin(), coll.end(), absLess);
    // Вычисляем номер элемента в массиве
    cout << distance(coll.begin(), pos) << endl;
  }
  catch(bad_alloc)
  {
    cout << "Не удалось выделить память под коллекцию\n";
  }

  return 0;
}


Ваше имя:

Пароль:

Цитировать

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

Сообщение:

Прикрепить: