在 Visual Studio 中创建离散分布
Creating a discrete distribution in Visual Studio
我想用 121 个整数在 Visual Studio 中创建自己的离散分布。这是我正在尝试的代码:
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 个参数
有谁知道解决这个问题?
http://en.cppreference.com/w/cpp/numeric/random/discrete_distribution/discrete_distribution
您正在使用迭代器对其进行初始化,因此您需要使用此构造函数
template< class InputIt >
discrete_distribution( InputIt first, InputIt last );
所以我猜应该是 std::discrete_distribution<int&> dist(weights.begin(), weights.end());
不过我没用过discrete_distribution
我想用 121 个整数在 Visual Studio 中创建自己的离散分布。这是我正在尝试的代码:
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 个参数
有谁知道解决这个问题?
http://en.cppreference.com/w/cpp/numeric/random/discrete_distribution/discrete_distribution
您正在使用迭代器对其进行初始化,因此您需要使用此构造函数
template< class InputIt >
discrete_distribution( InputIt first, InputIt last );
所以我猜应该是 std::discrete_distribution<int&> dist(weights.begin(), weights.end());
不过我没用过discrete_distribution