问题是我想将多集迭代器初始化为某个值,以便以后可以检查是否有成功分配给我的迭代器的问题。现在,在程序的某些周期中没有进行此初始化,我会遇到一些垃圾和所有崩溃。
在伪代码中,我会这样考虑:

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/

10-13 06:00