打印矢量元素时出现意外输出

时间:2020-03-28 12:24:05

标签: c++ vector

我刚开始使用向量,我想做的是创建一个大小为3的向量,该向量具有float数据类型并打印出元素。这是我所做的

#include<iostream>
#include<vector>

using namespace std;

int main() 
{ 
    int n;
    cin>>n;
    float ip;
    vector<float> v;
    for(int i=0;i<n;i++)
    {
        v.push_back(ip);
        cin>>ip;
    }

    for (auto i = v.begin(); i != v.end(); ++i) 
        cout << *i << " "; 
}

执行 第一个输入是向量的大小 以下各行包含数据

3
11.2
23.4
33.1

预期输出

11.2 23.4 33.1

我实际上得到了什么

5.88233e-39 11.2 23.4
我不明白这个第一个价值是什么,我如何克服它,任何帮助都是值得的。预先感谢。

2 个答案:

答案 0 :(得分:0)

带有e-34的数字表示该数字的大小非常小,以至于基本上等于“ 0”。当您分配double的数据结构但未为其分配值时,通常会发生这种情况。在您的程序中,您没有在将其插入数据结构之前分配给ip。我建议您在编码之前先用伪代码弄清楚程序的逻辑。

答案 1 :(得分:0)

当您只写“ float inp;”时变量inp具有随机值,因为未初始化。然后将这个随机值添加到向量中,然后读取第一个输入。只需在第一个for循环内切换行,它应该可以工作。