![](/img/trans.png)
[英]Why do I get a segfault when calling my C++ function with .Call rather than .C?
[英]Why do I get a segfault error (C++ 98)?
我一直在從事C ++任務(我是新手)。 我應該將具有字符串成員的實例化結構按字母順序添加到列表中(不允許使用排序機制)。
雖然我已經弄清楚了大多數功能,但是我仍然堅持這一點:
void insertWord(vector<word_entry>& v, word_entry& we){
for(vector<word_entry>::iterator it = v.begin(); it != v.end();++it){
int determine = it->word.compare(we.word); //**1
if(determine > 0){ //**2
v.insert(it, we);
}
}
v.push_back(we);
}
如果代碼非常規編寫,請提前道歉。 無論如何,我要執行的操作是將對象插入迭代器的位置-如果if-return(** 2)返回true,則在迭代器指向的對象(** 1)之前。
有什么想法嗎? :(
插入向量會使所有現有的迭代器無效。 下次嘗試遞增迭代器時,您將具有未定義的行為。 要解決此問題,您可以使用
it = v.insert(it, we);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.