【发布时间】:2015-07-01 16:53:44
【问题描述】:
我想在 Visual Studio 中使用 121 个整数创建自己的离散分布。这是我正在尝试的代码:
std::vector< int> weights(121);
for (int i = 0; i < 121; i++)
{
weights[i] = (teamData[i]).S(); // some numbers from my program data
}
std::discrete_distribution<> dist(weights.begin(), weights.end());
我收到智能错误:
1 IntelliSense: no instance of constructor "std::discrete_distribution<_Ty>::discrete_distribution [with _Ty=int]" matches the argument list
argument types are: (std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int>>>, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int>>>)
当我编译时,我得到:
错误 1 错误 C2661:“std::discrete_distribution::discrete_distribution”:没有重载函数需要 2 个参数
有谁知道解决这个问题?
【问题讨论】:
-
这是一个智能感知错误,它真的可以编译吗?智能感知不只是 VS 中的自动完成功能吗?
-
我刚刚添加了编译时遇到的错误
-
当你声明 dist. Discrete_distribution 的默认类型是
但您正在尝试使用迭代器将其初始化为 int 向量。我认为这只有在你传递一组整数而不是两个不代表整数的参数时才有效。 -
@RyanP 谢谢,但我不确定如何将一组整数传递给分布。
-
如果你谷歌我的错误信息,有一个链接,它只是说要更新 VS 2013,我这样做了,但仍然得到同样的错误。
标签: c++ distribution