c++ - 设置不插入

标签 c++ iterator

我遇到一个问题,我的代码在尝试插入集合时似乎卡住了。

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;
   }
}

它似乎卡在打印出“after”的那一行之前。

插入之前的行打印出一个字符串,我确信 wordlist 包含很多单词。这编译并且不循环。如果我删除插入,它会很好地迭代。为什么这个插件会造成这么多麻烦?

最佳答案

先为lexset分配内存:

lexset = new set<string>;

并修复你的 word_list打字错误

关于c++ - 设置不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20452129/

相关文章:

c++ - BOOST_STRONG_TYPEDEF并 move 语义

c++ - 如何检查我的迭代器是否没有任何内容

c++ - 结构的指针以及如何访问元素

python - 父类 "enumerate"如何访问未设置为实例变量的参数?

C++ 流迭代器与容器迭代器

c++ - std::stod 为应该有效的字符串抛出 out_of_range 错误

安装新的 C++ 重新分发包后,C++ 运行时行为异常

c++ - 从 vector 中删除最后一个元素会导致迭代出现问题

c++ - 将迭代器从原始容器镜像到它的拷贝