【发布时间】:2018-05-08 21:00:52
【问题描述】:
我正在做一个项目,我有一个模板类,其中有一个列表。我包含的这个函数旨在用随机数填充列表。但是每次我运行它时,它都会说“术语不会评估为带 0 个参数的函数”,而我的理解是我不能使用在 Generate 中返回值的函数。
如何使生成器和随机函数成为函子?没有它有没有办法做到这一点?
template<typename T>
void ListManipulator<T>::fillList()
{
std::uniform_real_distribution<double> random(1000, 2000);
std::default_random_engine generator(static_cast<unsigned>(std::time(0)));
std::generate(theList.begin(), theList.end(), random(generator));
【问题讨论】:
-
算法很酷,除了
for(auto& e : theList) e = random(generator);之外的所有算法都一样长且易于阅读。