Я сделал этот код, который должен построить два вектора: один с целыми числами до 100, а другой с квадратами этих целых чисел и хотел бы написать два столбца, чтобы значения выстраивались в линию в двух столбцах. Программа компилируется нормально, но выход пуст, т. Е. Появляется nothinkg, но только сообщение «Process received 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;
}
Если вы попытаетесь отладить, вы обнаружите, что все циклы for не выполняются вообще. – songyuanyao
'numbers' пуст, когда вы вводите свой первый цикл, поэтому он полностью пропущен и, следовательно, все остальное (и это хорошо, потому что даже один элемент вводит бесконечный цикл роста;' i' никогда не поймает до 'numbers.size()', потому что вы увеличиваете этот размер с каждой итерацией). – WhozCraig
Пожалуйста, узнайте, как использовать отладчик. Вы заметите, что это намного быстрее и легче, чем писать здесь вопрос и ждать ответа, особенно для основных проблем. –