2013-12-08 148 views
0

我有一個問題,當我的代碼試圖插入到一組時似乎卡住了。Set is not inserted

using namespace std; 
set<string> * lexset; 


void build(const set<string>& word_list) 
    set<string>::iterator it = word_list.begin(); 

    while(it != word_list.end()) 
    { 
     cout << *it << "before"<< endl; 
     lexset->insert(*it); 
     cout << "after" <<endl; 

     ++it; 
     cout << "end of while" <<endl; 
    } 
} 

它似乎卡在打印出「之後」的行之前。

插入之前的行打印出一個字符串,我知道這個詞表中包含了很多單詞。這編譯並且不循環。如果我刪除插入,它迭代通過很好。爲什麼這個插入引起這麼多麻煩?

+1

有你lexset新的內存?爲什麼lexset應該是一個集合的指針? – billz

+0

你是否正確初始化了'lexset'?當你使用一個指針時,它是什麼時候分配的? – starrify

+0

這看起來像[XY問題](http://meta.stackexchange.com/q/66377/147331)。你試圖解決的實際問題是什麼? – Johnsyweb

回答

2

首先分配內存lexset

lexset = new set<string>;

並修復word_list錯字