<分区>
要为某个计算初始化变量,我必须从整数数组中为它们赋值。 所以我这样做:
vector<double> vd;
int ai[N]; // Filled somewhere else
vd.assign(ai, ai+N);
这适用于 gcc 4.6.1 Linux。但它总是正确的吗?或者我应该回到常青树:
vd.resize(N);
for(int i=0; i < N; ++i) vd[i] = (double)ai[i];
感谢您的澄清!
<分区>
要为某个计算初始化变量,我必须从整数数组中为它们赋值。 所以我这样做:
vector<double> vd;
int ai[N]; // Filled somewhere else
vd.assign(ai, ai+N);
这适用于 gcc 4.6.1 Linux。但它总是正确的吗?或者我应该回到常青树:
vd.resize(N);
for(int i=0; i < N; ++i) vd[i] = (double)ai[i];
感谢您的澄清!
最佳答案
将进行隐式转换,因此是安全的。为什么不在构造过程中初始化 vector :
std::vector<double> vd(ai, ai + N);
关于c++ - 将 vector<int> 分配给 vector<double> 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901256/