首页 > 解决方案 > 从转换的容器元素创建离散分布

问题描述

假设我们有一个std::vector<T> v并且T是一个具有成员函数的类U T::f() const,其中U可以转换为double。我想创建一个std::discrete_distribution<> d(/* v[0].f(), ..., v[v.size() - 1].f() */). 如果不创建包含值的新容器,这是否可能v[0].f(), ..., v[v.size() - 1].f()

标签: c++iteratorc++17

解决方案


类似的东西boost::transform_iterator可以做到这一点。您只需要从向量的迭代器中创建它们。


推荐阅读