-6
为什么当我尝试输出值时,此代码产生分段错误?
由于线路导致分段故障
cout < < * rit_j;向量迭代器的分段错误
void chef(vector<int>vec)
{
int count=0;
vector<int>::iterator bit = vec.begin();
vector<int>::iterator eit=vec.end();
if(*bit != *eit)
{
sort(bit,eit);
vector<int>::iterator rit_i,rit_j,initial = vec.end();
--rit_i;--rit_j;--initial;
cout << *rit_i;
}
}
'rit_i'是使用默认构造函数创建的,因此在执行'--rit_i'后取消引用它可能不会达到您想要的效果。 – 2014-12-07 19:07:48
@JordiVermeulen谢谢你的回复..但我不明白你的意思。可以请你出示我需要改正的问题。 – Pradeep 2014-12-07 19:09:56
我不知道你的代码应该做什么,所以我不能纠正它。但问题是'rit_i'变量是用默认的构造函数初始化的。因此,您有一个不绑定到任何容器的迭代器。在这样的迭代器上执行'--rit_i'是未定义的。 – 2014-12-07 19:15:06