如果我有一个 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/