首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >discrete_distribution中的C++编译错误

discrete_distribution中的C++编译错误
EN

Stack Overflow用户
提问于 2017-01-05 22:07:17
回答 1查看 185关注 0票数 0

我在下面的代码行中遇到了一个编译错误,我不能完全理解。根据msdn的说法,语法是正确的。

代码语言:javascript
复制
vector<int> temp_weights = //some data will be here

discrete_distribution<int> weights ({ temp_weights.begin(), temp_weights.end() }); //error C2440

完整的错误是:

代码语言:javascript
复制
Error   5   error C2440: 'initializing' : cannot convert from 'initializer-list' to 'std::discrete_distribution<int>'   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 22:18:59

discrete_distribution<int> weights { temp_weights.begin(), temp_weights.end() };

这不起作用的原因是因为它是初始化列表的语法,编译器认为您希望将temp_weights.begin()存储在weights[0]中,将temp_weights.end()存储在weights[1]中。

应该有一个接受两个向量的构造器(为了复制vector::iterator元素),所以这对你应该是有效的。

discrete_distribution<int> weights ( temp_weights.begin(), temp_weights.end() );

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41487126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档