65,187
社区成员




代码
vector<int>::iterator Category::itemsBegin()
{
if (this->items.empty())
return NULL; //函数的返回值要求的类型是vector<int>::iterator,NULL肯定不是这个类型吧
else
return this->items.begin();
}
想想看,我们定义一个vector<int> v之后,他是空的,也即初始size是0,但是我们仍然可以用v.begin()来返回一个vector<int>::const_iterator呀:
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> v;
if(v.begin() == v.end()) cout << "yes" << endl;
return 0;
}
所以lz在设计时也可以不用检测是否为空,直接返回items.begin()就好(当然,这样的iterator不能解引用的说)