代码可以编译,但没有输出

Code does compile but no output

本文关键字:输出 编译 代码      更新时间:2023-10-16

我编写了这段代码,应该构建两个向量,一个包含最多 100 的整数,另一个包含这些整数的平方,并且想编写两列,以便值排列在两列中。程序编译正常,但输出为空,即 nothinkg 出现,但只有消息"进程返回 0 (0x0("。我在这里到底错过了什么?

#include <iostream>
#include <cmath>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{    
    vector<int> numbers;
    typedef vector<int>::size_type vec_sz;
    vec_sz size = numbers.size();
    for (vec_sz i = 0; i != numbers.size(); ++i)
    {
        numbers.push_back(i);
    }
    vector<int> squares;
    for (vec_sz i = 0; i!= squares.size(); i++)
    {
        squares.push_back(i^2);
    }
    for (vec_sz i = 0; i != numbers.size(); ++i)
    {
        cout << setw(3)
        << numbers[i]
        << setw(6)
        << squares[i]
        << endl;
    }
    return 0;
}

当你在主函数的开头写下这一行时,

vec_sz size = numbers.size();

您想要获取向量的大小。但是,numbers为空,则不包含任何数据。因此大小将为 0。这里numbers.size()将返回 0。

因此,for (vec_sz i = 0; i != numbers.size(); ++i)甚至不会执行一次。

假设您要填充numbers,那么您应该知道要填写多少个值numbers。知道此值后,将其存储在变量中,例如 count .

样本:

const int count = 10;
for (int i = 0; i < count; ++i) {
    numbers.push_back(i);
}
// now numbers.size() will return 10;

您的squares向量也是如此。