我正在编写一个简单的函数,该函数遍历容器中的数字并计算一些汇总值(在这种情况下为熵)。
我想将其写得尽可能通用,以便它可以在不同的值类型(vector
,set
,...)上与不同的容器(double
,float
,...)一起使用,所以我正在这样做:
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/