如何在地图中使用结构指针
How to use a struct pointer in a map?
我想使用std :: map通过使用两个int作为钥匙查找,例如:
,将指针存储到结构std::map<int, int, my_struct*> my_map;
理想情况下,我想编写类似的代码:
struct my_struct* test1 = get_struct_ptr();
my_map[1, 5] = test1;
目前,我会因my_map定义出现错误:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/map:524:17:
error: called object type 'my_struct *' is not a function or function pointer
有没有办法使用STD :: MAP进行此操作,或者有其他类型可以处理此要求?
map
总是从一种类型到另一种类型。您可以使用std::pair<int, int>
创建一种类型来存储两个int
s,以用于键,因此:
std::map<std::pair<int, int>, my_struct*> my_map;
my_map[{1, 5}] = test1;
另外,您可以使用带有两个int
数据成员的std::tuple<int, int>
,std::array<int, 2>
或struct
(但是您必须"教" map
如何通过与您自己的operator<
进行比较,以比较此类结构;&amp;答案详细介绍了如何执行此操作(。
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- C++:映射结构中的结构指针
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- 类的静态结构指针声明在C++
- 在两个.cpp文件之间定义全局类/结构指针
- 返回对常量结构(指针类型)成员的引用:明显的左值到右值转换
- 是否可以将无符号字符数组reinterpret_cast到仅包含C++中无符号字符成员的结构指针
- 如何在地图中使用结构指针
- 结构指针在"新"调用上给出已分配的地址?
- 铸造结构指针指向C 的工会指针
- c++ 结构指针在初始化为 NULL 时无法读取内存
- 函数中的结构指针的地址为0x1
- C 用结构指针初始化结构
- C 结构指针铸成数组Interop C#
- 方法中不允许访问结构指针
- 如何打印出结构指针
- MPI_Op_create:候选功能不可行.自定义结构指针不能解释为空指针
- 尝试将结构指针传递给类时出错
- 初始化结构指针的值
- 使用 pybind11 将自定义结构(指针向量)从 C++ 传递到 python 的方法是什么?