为什么矢量的大小超出范围

why is the size of vector is out of range

本文关键字:范围 为什么      更新时间:2023-10-16
#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();
相关文章: