当我测试某些内容时,我创建了一个float类型的向量,并将值1 / i放入该向量中;但是,在读取值时,输出将打印为整数而不是浮点数。
#include <stdio.h>
#include <vector>
#include <iterator>
int main(int argc, char const *argv[])
{
std::vector<float> testVec;
for (int i = 1; i < 5; ++i)
{
float v = 1/i;
testVec.push_back(v);
}
std::vector< float >::iterator it = testVec.begin();
for (; it!=testVec.end(); ++it)
{
printf("The value of the iterator: %f, *it);
}
return 0;
}
那么,这有什么问题?它与迭代器有关吗?我的意思是我对他们没有多少经验。
答案 0 :(得分:1)
问题背后的原因是1/i
其中i
的类型为整数是整数算术,并且会给出整数作为输出。
代替1.0
的{{1}}会对您有所帮助。 :)