1

我正在关注一些关于使用单独链接实现哈希表的手写笔记。特别是我正在寻找这个功能:

list<ListCell>::iterator TablaHash::FoundOnList(int key, int table_row){
    for(list<ListCell>::iterator found= table[table_row].begin(); 
            found != table[table_row].end();found++){
        if((*found).Key() == key){
            return found;
        }
    }
    return Ø;
}

其中最后一个符号是空集。我知道我应该在那里返回一个“空”迭代器,但我该怎么办?也许返回 end() 迭代器?

4

2 回答 2

1

是的,返回end()迭代器是 C++ 中最自然的事情。

例如,如果找不到搜索的项目,则std::find返回迭代器。end

于 2015-08-02T17:20:19.303 回答
0

C++ 中没有空迭代器的概念。您应该返回 end() 迭代器。即使是标准的 STL 算法也是如此。

于 2015-08-02T17:21:50.490 回答