我是一名初学者,仍在学习C ++我正在玩矢量,看看会发生什么。每当我开始它时都会给我一个调试错误。 这是代码
int main()
{
vector<int> num;
int i = 0;
while (i != 1000)
{
++i;
num.push_back(i);
cout <<num[i]<<"\t"<< sqrt(num[i]) << "\n";
}
}
答案 0 :(得分:1)
问题在于while()
循环中的操作顺序:
while (i != 1000)
{
++i;
num.push_back(i);
cout <<num[i]<<"\t"<< sqrt(num[i]) << "\n";
}
i
从0开始。在每次迭代中,您push_back
一个元素,然后使用计数器i
- 在增量后打印它。因此,num[i]
指的是一个尚未存在的元素。
将您的代码更改为:
while (i < 1000)
{
num.push_back(i + 1);
cout <<num[i]<<"\t"<< sqrt(num[i]) << "\n";
++i;
}
答案 1 :(得分:1)
向量的索引从零开始。在您的代码中,您总是在更新(或推送)之前访问1个索引。
答案 2 :(得分:0)
当我在两个陈述之后增加i时,它工作正常。 我不知道如何,但它工作得很好。 谢谢大家。
int main()
{
vector<int> num;
int i = 0;
while (i != 1000)
{
num.push_back(i);
cout <<num[i]<<"\t"<< sqrt(num[i]) << "\n";
++i;
}
}
答案 3 :(得分:-1)
确保您使用
form = browser.get_form(id="searchform")
form["search"].value = "Beethoven Opus 131"
browser.submit_form(form, submit=form.submit_fields['go'])
答案 4 :(得分:-1)
该代码适用于以下预处理器。
#include <iostream>
#include <vector>
和
using namespace std;