在统一初始化期间初始化vector <float>错误

时间:2016-06-21 14:32:13

标签: c++11

当我在Visual Studio 2015中编译它时出现错误:错误C2398:元素'1':从'double'转换为'float'需要缩小转换

vector<float> v {2.46, 2.58, 2.0, 2.25, 3.0 };

但这有效

vector<float> v{ (float)2.46, (float)2.58, (float)2.0, (float)2.25, (float)3.0 };

这段代码是否有优雅的解决方案,所以我不必将所有输入都浮动? 也许调整initializer_list?

1 个答案:

答案 0 :(得分:5)

无耻地窃取igor-tandetnik的评论:

vector<float> v {2.46f, 2.58f, 2.0f, 2.25f, 3.0f };

然后补充它以使其成为答案:

文字0.42的类型为double。要拥有float类型的文字,您需要f后缀:0.42f

关于integer literalsfloating point literals

,您可以阅读更多内容(嗯......并不是那么多)