簡體   English   中英

為什么會出現段錯誤(C ++ 98)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM