gpt4 book ai didi

STL 容器上的 C++ 模板函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:20 25 4
gpt4 key购买 nike

我想编写一个通用函数来计算 STL 容器中元素的总和。我的处理方式如下(t 是一个容器):

template <typename T> double Sum(const T& t){
typename T::reverse_iterator rit = t.rbegin();
double dSum = 0.;
while( rit != t.rend() ){
dSum += (*rit);
++rit;
}
return dSum;
}

但是我遇到了很多错误。我想问题出在我定义迭代器的第二行?非常感谢任何帮助:)

最佳答案

应该是

typename T::const_reverse_iterator rit  = t.rbegin();

由于 tconst 并且 rbegin 对于 const 容器返回 const_reverse_iterator,无法转换为 reverse_iterator

最好使用 std::accumulate,而不是你自己的函数,像这样

double result = std::accumulate(c.rbegin(), c.rend(), 0.0);

关于STL 容器上的 C++ 模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com