编码
#include <iostream>
#include <vector>
int main () { std::vector<int> N = {3e6, 4e6}; }
给出错误
error: narrowing conversion of ‘3.0e+6’ from ‘double’ to ‘int’ inside { } [-Wnarrowing]|||.
然而
#include <iostream>
#include <vector>
int main () {
std::vector<int> N = {3*10^6, 4*10^6};
for (int n: N ){ std::cout << n << std::endl; }
}
印刷
24
46.
如何正确将此向量定义为整数向量?
如果在写这个问题时发现设置
int n1 = 3e6, n2 = 4e6;
vector<int> N = {n1, n2};
确实有效,但有更好的方法吗?在 n1 和 n2 的声明中,类型仍然从 double 转换为 int。