gpt4 book ai didi

c++ - SIGSEGV 提交

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:56 25 4
gpt4 key购买 nike

我正在解决问题 https://www.spoj.pl/problems/ACPC11A/

这是我的代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>

using namespace std;

int main()
{
int tc,i,n;
scanf("%d",&tc);
while(tc--)
{
vector<string> v1,v2;
string str,w;
scanf("%d",&n);
int flag=0;
for(i=0;i<n;i++)
{
cin>>str;
if(str[0]!='#')
{
flag=1;
w=str;
}
else if(flag==0)
{
v1.push_back(str);
}
else
v2.push_back(str);
}
//print v2-->w-->v1
for(i=0;i<v2.size();i++)
{
cout<<v2[i]<<" ";
}
if(w!="")
cout<<w<<" ";
for(i=0;i<v1.size()-1;i++)
cout<<v1[i]<<" ";
cout<<v1[v1.size()-1]<<endl;
v1.clear();v2.clear();str.clear();w.clear();
}
return 0;
}

我得到了示例测试用例的正确输出...但是在提交时我的代码给出了段错误。

我的逻辑很简单..我用了 2 个 vector ,1 个用于在英语单词到达之前存储单词(v1),另一个用于在英语单词到达之后存储世界(v2)之后我打印 v2 的内容,然后是单词,然后是 v1 的内容。

请帮助我理解为什么这段代码会出现段错误。

最佳答案

别打扰大家……我错了

错误在 for(i=0;i<v1.size()-1;i++)

v1.size()0 ,然后 size() 返回无符号值...因此 0-1将是非常大的值(value),因此 SIGSEGV

关于c++ - SIGSEGV 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com