我正在编写一个简单的函数,该函数遍历容器中的数字并计算一些汇总值(在这种情况下为熵)。

我想将其写得尽可能通用,以便它可以在不同的值类型(vectorset,...)上与不同的容器(doublefloat,...)一起使用,所以我正在这样做:

template<class Iterator>
typename Iterator::value_type Entropy(Iterator begin, Iterator end) {
  typedef typename Iterator::value_type Value;
  Value result = Value(); // assignment needed?
  for (Iterator it = begin; it != end; ++it) {
    result -= *it * log(*it);
  }
  return result;
}

我对根据所有最佳实践的这段代码的样子很感兴趣。换句话说,这个小功能的STL实现到底是什么样的?

最佳答案

查看std::transform和std::accumulate

关于c++ - 最佳实践:如何改进对容器值求和的代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4306872/

10-13 06:55