为什么矢量的大小超出范围
why is the size of vector is out of range
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector <int> v;
vector<int> :: iterator ip;
v.push_back(2);
for(int i=3;i<=32000;i+=2)
{
int top;
top = sqrt(i)+1;
int flag=0;
if(*ip>top) break;
if(i%*ip==0)
{
flag=1;
break;
}
if(flag==0)
{
v.push_back(i);
}
}
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
cout<<v.at(n)<<endl;
}
return 0;
}
你能解释一下为什么我的代码出现运行时错误吗?矢量的大小是否超出范围?我不知道为什么我在这段代码中得到错误的答案,尽管我的代码非常好。
你正在取消引用一个未初始化的迭代器,你想要更像:
vector<int>::iterator ip = v.begin();
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 为什么我的变量存在于其范围之外
- 为什么 gcc 会给我可能未初始化的警告 deque::insert 带有过滤范围
- 为什么范围算法与 std 的迭代器不兼容?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- 为什么 C++20 范围不只提供管道语法?
- 矢量超出范围,但为什么
- 为什么基于范围类型的大括号上循环init列表是非法的c++
- 为什么 gcc 警告只针对统一初始化缩小转换范围?
- 为什么基于范围的 for 循环中的结构化绑定只是一个副本而不是引用?
- 为什么当我的代码超出函数范围时,"does not name a type"出现编译器错误?
- 为什么我的 RLE 代码显示标准超出 C++ 的范围?
- 在遍历字符串时,为什么我没有超出范围错误,即使我已经超出了它的长度?
- 为什么不允许在全局命名空间处阻止范围?
- 为什么按位运算符在使用与整数中提供的位数相同的位数计算可能的最大范围时会产生错误
- 为什么C++找不到布尔运算符,当有一个!范围内的运算符?
- 将局部变量保存到全局向量中,为什么离开局部范围后可以得到这些局部变量?
- 为什么基于循环范围不直接在C 中使用参数阵列