c++ - 类(C++)中通用查找函数的返回值冲突,返回什么?

标签 c++ hashtable

我的类中有一个名为“find()”的方法,它返回指向类中存储的数据的指针(准确地说,该类是哈希表)。我发现返回指向我的类数据的指针是一个坏主意,而且我还没有找到更好的方法。关于如何查找数据而不担心用户可能删除(修改)我的对象有什么建议吗? 这是查找方法: (该类是哈希表,它完全可以查找)

Data* find(const Key& key) {
    if (isMember(key) == false) {
        return NULL;
    }
    int hash_idx = hash_function(key, table_size);
    return &(*((table[hash_idx])->find(key)));
}

最佳答案

你应该返回一个指向 const 的指针:

Data const* find(Key const& key);

关于c++ - 类(C++)中通用查找函数的返回值冲突,返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488781/

相关文章:

c++ - 在 C++ 中实现哈希表(插入和延迟删除)

c# - 如何将 IP 地址映射到八个字符长的字符串?

c - 哈希表和 BST 实现

c++ - 运算符 T&() 还是运算符 T()?

c++ - 使用C++和MFC进行动态图绘制

c++ - 关于函数重载的查询

c++ - Qt5 QWaitCondition 例子

c++ - Qt Windows 应用程序打开控制台输出

Java Hashtable 非恒定时间操作

c++ - 在具有严格内存限制的 O(n^3) 中求解 5SUM