我已经制作了这个代码,它应该构建两个向量,一个是整数,最多是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;
}
答案 0 :(得分:1)
当你在主函数的开头写这行时,
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
向量。