c++ - 使用双向链表实现 map

标签 c++

我正在尝试使用模板双向链表实现 map 。

我正在尝试编写一个获取函数:

valueType get (keyType key, bool & success) const;
  • 返回与给定键关联的值。

  • 如果key存在于map中,success应设置为true。

  • 如果 key 没有关联,则应将 success 设置为 false。

get 函数将用于用户访问 map ,以及要检查是否存在的 add()remove() 函数是给定键和值之间的关联。

如果值不存在,我对返回什么感到困惑?因为,此函数返回类型 valueType

最佳答案

我会像这样反过来做(部分伪代码):

bool get(const keyType& key, valueType& value) const
{
    // search for value
    if(/*value found*/)
    {
        value = /*found value*/; // set parameter to found value
        return true;
    }
    return false; // leave value unchanged
}

像这样使用函数:

valueType value;

if(get("key", value))
{
    // we know key was found and value was set
}
else
{
    // we know key was not found and value is unchanged
}

关于c++ - 使用双向链表实现 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820244/

相关文章:

c++ - 如何配置 VS Code 使其在程序运行后不会关闭控制台

python - rand 和 rands 在 python 中的实现

c++ - 如何在 C++ 中读取复数的二进制文件

c++ - 说明此场景中的类和范围

c++ - 无法将库与 cmake 和 Visual Studio 2017 链接

c++ - 为什么 std::basic_ios 有一个公共(public)构造函数?

c++ - 选择了错误的功能

c++ - c++ libssh2 使用什么传输模式?

类对象的 C++ 引用返回-为什么不调用复制构造函数?

c++ - 现有 win 控制台应用程序的简单 GUI 插件