2013-12-08 3 views
0

У меня проблема, когда мой код просто застревает при попытке вставить в набор.Set не вставляет

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 опечатка

Смежные вопросы