将自定义类对象作为值传递到 STL 映射中
Passing custom class object as a value into STL map
我想将自定义类的对象作为值传递到STL映射中。我该怎么做..?
这是一个代码:
class demo
{
int a, b,c,d,e;
}
// here is how declare my map:
map<int, demo*> my_map;
这就是我将其用于函数的方式:
demo *ptr = NULL;
ptr = new demo;
这是我插入地图的方式
my_map.insert(make_pair(int, ptr);
// Delete current instance
delete ptr;
这是正确的方法吗..?
实际上,没有。如果要将demo
对象存储在map
中,则应使用 map<int, demo>
。将资源管理留给std::map
.此外,通过使用delete ptr
可以销毁刚刚创建的对象,my_map[index]
将是无效指针。
只需使用my_map.insert(make_pair(myIndex, myDemoObject));
.
另请注意,如果对象不存在,则使用 my_map[myIndex]
将创建具有给定索引的对象,因此您只需执行以下操作:
std::map<int, demo> my_map;
my_map[1].a = 42;
my_map[2].b = 1337;
my_map[3].c = 314159;
my_map[4].d = 23;
相关文章:
- STL映射比较器能否以某种方式获取指向映射本身的指针?
- 在 c++ stl 映射中,删除具有重复值的条目
- C++ STL 映射同时更新所有值
- 遍历 STL 映射(集/多集)的最佳方法,同时元素可能会在循环期间被删除并重新插入?
- 无法将元素添加到 STL 映射
- 为什么不能在STL映射中插入值
- 在 stl 映射和列表 (c++) 上进行迭代的泛型循环
- 未签名的char数组到stl ::映射或其他容器中的键
- 整数和元组的静态 STL 映射返回 0
- 指向类的指针的 STL 映射的 SWIG 类型图
- 将 STL 映射存储到 Boost ConstBufferSequence 中
- 如何在下一次函数调用中使用 STL 映射擦除从最后一个位置
- 如何使用密钥 2 更新 STL 映射键 1 并将值复制到键 2 中
- 为什么当代码尝试在 STL 映射中查找键时出现分段错误
- 快速插入STL映射
- C STL映射中的SegFault由于过程退出期间的静态可变清理而找到
- 如何将 STL 映射保存到文件C++
- C++STL映射键和值工作不正常
- STL 映射自定义比较器
- 带有内存比较的 STL 映射.如何在运行时设置比较块大小