当我在Visual Studio 2015中编译它时出现错误:错误C2398:元素'1':从'double'转换为'float'需要缩小转换
vector<float> v {2.46, 2.58, 2.0, 2.25, 3.0 };
Run Code Online (Sandbox Code Playgroud)
但这很有效
vector<float> v{ (float)2.46, (float)2.58, (float)2.0, (float)2.25, (float)3.0 };
Run Code Online (Sandbox Code Playgroud)
这个代码是否有一个优雅的解决方案,所以我不必将所有输入都浮动?也许调整initializer_list?
无耻地窃取igor-tandetnik的评论:
vector<float> v {2.46f, 2.58f, 2.0f, 2.25f, 3.0f };
Run Code Online (Sandbox Code Playgroud)
然后补充它以使其成为答案:
文字0.42的类型为double.要有一个float类型的文字,你需要f后缀:0.42f.
关于整数文字和浮点文字,你可以阅读更多(嗯......不是那么多)