迭代器与NULL值的比较
标签(空格分隔): 编程技巧
今天做了件比较愚蠢的事情,把迭代器直接当做指针用了。在c++中,迭代器是类,虽然是封装了指针,但是还是不能直接拿来当指针用,那么有时候必须要判断返回的迭代器是否为空,那怎么解决呢?
vector<int>::iterator biggest_positive = max_element(positive.begin(), positive.end());
if (biggest_positive != positive.end())
{
count_positive = ((*biggest_positive) + 1);
}
vector<int>::iterator biggest_negative = max_element(negtive.begin(), negtive.end());
if (biggest_negative != negtive.end())
{
count_negtive = ((*biggest_negative) + 1);
}
对了,就是拿返回的迭代器与.end()作比较。