在 C++ 哈希 table 代码中返回空迭代器
Returning empty iterator in C++ hash table code
我正在关注一些关于使用单独链接实现散列 table 的手写笔记。特别是我正在寻找这个功能:
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 Ø;
}
其中最后一个符号是空集。我知道我应该 return 一个 "empty" 迭代器,但我应该怎么做?也许 return end() 迭代器?
是的,返回 end()
迭代器是 C++ 中最自然的事情。
例如,std::find
returns end
迭代器如果找不到搜索的项目。
c++中没有空迭代器的概念。你应该 return end() 迭代器。即使是标准的 STL 算法也是如此。
我正在关注一些关于使用单独链接实现散列 table 的手写笔记。特别是我正在寻找这个功能:
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 Ø;
}
其中最后一个符号是空集。我知道我应该 return 一个 "empty" 迭代器,但我应该怎么做?也许 return end() 迭代器?
是的,返回 end()
迭代器是 C++ 中最自然的事情。
例如,std::find
returns end
迭代器如果找不到搜索的项目。
c++中没有空迭代器的概念。你应该 return end() 迭代器。即使是标准的 STL 算法也是如此。