将私有变量添加到C STL类
Adding private variable to c++ stl class
是否有一种方法可以将私有变量添加到代码中的stl类中?例如,使其成为" STD :: list"的任何实例都将附加一个附加变量。还是您只需要从头开始列出自己的清单?
在某些情况下,是的。例如,std :: istream和std :: ostream具有一种特殊的,很少使用的方法,称为 xalloc()
,可让您在这些类的所有实例中添加一个或多个long
或void*
成员。
但这不是典型的。对于诸如std :: list之类的容器类,没有类似的成员挂钩来添加"插槽"以包含自定义数据。
但是,容器类确实具有分配器的可选模板参数。每个容器都有一个分配器,默认情况下是无状态的,并使用new
和delete
分配元素。在C 11及以后,这些分配器可以是"状态",这意味着您可以使用new
和delete
进行自己的分配器,还可以存储任意的额外数据。
用所需的状态写了分配器后,您可以检索它,例如在使用get_allocator()
的列表中。
相关文章:
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 将模拟类添加到 stl 容器
- 将STL文件添加到QT小部件
- 无法将元素添加到 STL 映射
- 将私有变量添加到C STL类
- 如何将结构添加到STL列表中
- C 将条目添加到具有字符串和类实例的STL映射中,作为指针
- 为什么stl::list会复制添加到列表中的元素
- 如何在STL::List容器中添加值
- 如何在不使用STL的情况下,根据参数将元素添加到循环内的两个不同数组中
- 将包含unique_ptr的结构项添加到 stl 容器
- 将元素添加到 STL 容器的背面
- STL - 向存储在 STL 映射中的向量添加值
- C++ -<Task> 删除堆上分配的任务数组时,将列表 l(或任何 STL 容器)添加为数据成员会导致错误
- 将数据添加到没有原始循环的 STL 容器
- 为STL容器添加专门的功能
- 遍历STL容器并删除/添加多个项
- 具有奇数大小的c++ STL向量,在添加任何内容之前容量为0
- STL:访问已作为第二对添加到映射的结构中的数据
- 在stl中添加两个字符串