2017-12-09 3 views
-1

someting을 테스트하는 동안 float 유형의 벡터를 만들고 벡터에 1/i 값을 넣었으나 값을 읽는 동안 출력은 float가 아닌 정수로 출력됩니다.pushing_back이 벡터에 수레 될 때 왜 0이 생깁니 까?

#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; 
} 

그래서이 문제는 무엇입니까? iterator와 관련이 있습니까? 나는 그들과 많은 경험이 없다는 것을 의미한다.

+2

'i'가 정수형 인'1/i'는 ** 정수 연산 **입니다. –

+0

'1'은'int'이고'i'는'int'이므로'1/i'는'int'입니다. – tkausl

+0

@AditiRawat 오, 알았어요. 지적 해 주셔서 고마워요. – onurcanbektas

답변

1

1/i 여기서 i은 정수 유형이 이고 정수 출력이이고 출력으로 정수를 제공합니다.
대신 1이 도움이됩니다. :)

관련 문제