首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

1IntelliSense: 不存在从 "int" 转换到 "std:Vector_iterator<std:Vector

2013-12-04 
1IntelliSense:不存在从 int 转换到 std::_Vector_iteratorstd::_Vector_valstd::_S1IntelliSense:不

1IntelliSense: 不存在从 "int" 转换到 "std::_Vector_iterator<std::_Vector_val<std::_S
1IntelliSense:  不存在从 "int" 转换到 "std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int>>>" 的适当构造函数e:\大二\数据结构期末\exercise3\category.cpp11510main


代码
vector<int>::iterator Category::itemsBegin()
{
if (this->items.empty())
return NULL;
else
return this->items.begin();
}
[解决办法]
人家说的是呀


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

热点排行