当push_back浮动到向量时,为什么我得零?

时间:2017-12-09 07:20:31

标签: c++ c++11 vector

当我测试某些内容时,我创建了一个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;
}

那么,这有什么问题?它与迭代器有关吗?我的意思是我对他们没有多少经验。

1 个答案:

答案 0 :(得分:1)

问题背后的原因是1/i其中i的类型为整数是整数算术,并且会给出整数作为输出。
代替1.0的{​​{1}}会对您有所帮助。 :)