擦除矢量时的分段故障

Sud*_*pta 0 c++ vector segmentation-fault

while(!v1.empty() || !v2.empty())
{
    int k=0;        
    if(v1[k] < v2[k])
        v1.erase(v1.begin());
    else
        v2.erase(v2.begin());
    cout<<v1[0];
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码在这里我想删除元素,直到其中一个为空(向量排序),如果

v1包含2,3,5,8

v2包含3,4,7

那么根据我,它应该给我, 8但它的给予segmentation fault

Mic*_*nen 5

使用&&代替||:

while( !v1.empty() && !v2.empty())
Run Code Online (Sandbox Code Playgroud)

如果没有它,当其中一个向量为空时,您将进入while循环,然后尝试访问不存在的元素.