地图和unordered_map包含指向双精度的指针
map and unordered_map containing pointers to double?
如果我有一个 std::map 和 std::unordered_map 我如何在双精度上使用指针,以便当unordered_map更新特定键的双精度值时,这已经反映在同一个"键"的 std::map 中?
所以:
unordered_map["1"] = 6 导致地图 ["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
也许是这样的:
std::unordered_map<std::string, double> um;
std::unordered_map<std::string, double*> om;
om["1"] = &um["1"];
从现在开始,*om["1"]
始终是um
中相应元素的值。只要确保从不从无序列图中删除元素即可。
(来源:迭代器和引用失效规则)
相关文章:
- 将指针数组分配给双精度
- f 是指向函数的指针,该函数采用 int,并返回指向不带任何内容并返回双精度的函数的指针
- C++ 在具有数组成员的类上无效指针/双精度释放
- 为什么可以使用指针创建新结构,但不能以相同的方式创建双精度?
- 将 Int 指针分配给双精度变量
- 错误:类型"类特征::张量<双精度,3>"参数提供给"删除",预期指针
- 如何将双精度转换为浮点指针
- Xcode 错误:指针和双精度之间的比较
- 复制开销:双精度与指针
- 对双精度和指针对的向量进行排序
- 函数中指向静态双精度的指针数组C++
- 将字符指针强制转换为双精度数组/取消引用
- 地图和unordered_map包含指向双精度的指针
- 用于双精度和指针C++的容器
- c++sizeof运算符-指向双精度的指针
- 通过指针初始化常量矩阵<双精度,0,80>(来自 Dlib)
- 转换/解析指针字符串和双精度
- 为什么我不能将一个类型(比如双精度)的变量的地址分配给 int 类型的指针?
- 使用双精度数组时,指针算术
- 将双精度指针转换为整型指针