问题是我想将多集迭代器初始化为某个值,以便以后可以检查是否有成功分配给我的迭代器的问题。现在,在程序的某些周期中没有进行此初始化,我会遇到一些垃圾和所有崩溃。
在伪代码中,我会这样考虑:
multiset<whateverclassA,whateverclassB>::const_iterator init_me = NULL;
...//if succesfull, something is assigned to init_me iterator
if (init_me != NULL)
//do something
但是它不是通常的指针,因此简单的NULL可能不足。
任何帮助表示赞赏!
最佳答案
使用std::multiset::end
。如果找不到该值,则也是std::multiset::find
之类的算法将返回的值:
multiset<whateverclassA,whateverclassB>::const_iterator
init_me = your_multiset.end();
/* ... */
if (init_me != your_multiset.end())
//do something
关于c++ - C将多集迭代器初始化为NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14519475/