1 IntelliSense: 不存在从 "int" 转换到 "std::_Vector_iterator

aiog 2013-11-22 12:12:16
1 IntelliSense: 不存在从 "int" 转换到 "std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int>>>" 的适当构造函数 e:\大二\数据结构期末\exercise3\category.cpp 115 10 main


代码
vector<int>::iterator Category::itemsBegin()
{
if (this->items.empty())
return NULL;
else
return this->items.begin();
}
...全文
1118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiog 2013-11-25
  • 打赏
  • 举报
回复
谢谢,问题也早就解决了
还有多远 2013-11-22
  • 打赏
  • 举报
回复
人家说的是呀

代码
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不能解引用的说)

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧