c++ - map 和 unordered_map 包含指向 double 的指针?

标签 c++ pointers dictionary reference unordered-map

如果我有一个 std::map 和 std::unordered_map 我怎么能在 double 上使用指针,这样当 unordered_map 更新特定键的 double 值时,这已经反射(reflect)在 std::map 中相同的“ key ”?

所以:

unordered_map["1"] = 6 导致 map["1"] 也为 6....

最佳答案

没有理由不能使用指针。

示例:

#include <iostream>
#include <map>
#include <unordered_map>
#include <memory>

int main()
{
    std::unordered_map<std::string, std::shared_ptr<double>> umap;
    std::map<std::string, std::shared_ptr<double>> omap;

    std::shared_ptr<double> value(new double(1234.5));

    umap.emplace("key", value);
    omap.emplace("key", value);

    std::cout << "umap " << *umap["key"] << "\n";
    std::cout << "omap " << *omap["key"] << "\n";

    *umap["key"] = 9999.1;
    std::cout << "omap " << *omap["key"] << "\n";
}

输出:

umap 1234.5
omap 1234.5
omap 9999.1

关于c++ - map 和 unordered_map 包含指向 double 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170434/

相关文章:

c - main 和其他函数中的 malloc 指针地址差异

c++ - C++ 中具有常量的数组的指针和引用

Python:递归地将字典附加到另一个字典

python - 在 python 中循环列表并使用 dict 理解创建字典的正确方法是什么?

python - 给定一个字典迭代器,得到字典

c++ - 在 main 中调用类方法,更改不会在类方法外部持续存在?

c++ - 传递指向 API 函数的指针

c - 我如何转换这个指针

c++ - 将 int(C::*)(int, char) 类型转换为 int(int, char) 类型

C++ 预处理器宏和返回语句