Написание алгоритма функций для STL - PullRequest
3 голосов
/ 10 сентября 2010

У меня есть std::set типа point

struct point
{
  int x;
  int y;
  int z;
};

Предположим, я хочу выполнить три разные операции с каждой переменной в наборе, т.е.

  • Найдите наименьшее число из переменных x.
  • Получить недостающие элементы из переменных y используя заданную разницу.
  • Получить произведение всех переменных z.

На этом этапе я должен использовать три предопределенные алогритмические функции по порядку или я должен написать свой собственный алогритм, который будет выполнять все три операции, повторяя набор за один раз?

Ответы [ 2 ]

8 голосов
/ 10 сентября 2010

Даже если вы получаете десятикратное увеличение скорости, если этот фрагмент кода использует только 5% времени вашего приложения, вы просто сократили время выполнения до 95%.Так что, если вы не знаете, что это настоящее узкое место в вашем приложении, не тратьте время на его оптимизацию.И единственный способ узнать это - через профилирование.

2 голосов
/ 10 сентября 2010

Начните использовать 3 функции в последовательности.Если у вас проблемы с производительностью, попробуйте написать собственный алгоритм.

Преждевременная оптимизация - зло.

...