How can I integrate map setget requests into C classstructure modifications?
- 内容介绍
- 文章标签
- 相关推荐
本文共计533个文字,预计阅读时间需要3分钟。
我想要梳理这里最好的方法是什么。基本上,我有一个系统,我收到外部请求,以便在我的模型中设置/获取值。问题是我的模型包含一个类,它可以嵌套,但请求是简单的(键,值)对。例如:struct
我想弄清楚这里最好的方法是什么.基本上我有一个系统,我收到外部请求,以便在我的模型中设置/获取值.问题是我的模型包含C类,它们可以嵌套,而请求是简单的(键,值)对.例如:
struct Foo { void setX(int x); int getX() const; struct Boo { void setY(float y); float getY() const; }: };
如果我收到一个请求为给定元素e设置set(y,21),那么我需要执行的操作将根据foo和boo是否已经存在而不同.必须为每个属性处理不同的可能性最终会编写大量代码.
在重新发明轮子之前,我想知道C中是否已经存在一个库或一个众所周知的技术,它允许以通用方式将这些平面动作映射到C结构(可以嵌套)中的变化.
谢谢
为此,Boost拥有Property Maps.> www.boost.org/doc/libs/1_57_0/libs/property_map/doc/property_map.html
它暴露的最基本的界面是
get(map, key) put(pmap, key, val)
对于左值/可读地图,您还可以获得索引器样式访问
pmap[key]; pmap[key] = newval; // if not const/readonly
您可以使用现有的属性映射适配器:
> identity_property_map和typed_identity_property_map
> function_property_map
> iterator_property_map
> shared_array_property_map
> associative_property_map
> const_associative_property_map
> vector_property_map
> ref_property_map
> static_property_map
> transform_value_property_map
> compose_property_map
或者写自定义的.
在实践中,甚至有一个dynamic_property_map看起来像这样:
put("age",properties,fred,new_age); put("gpa",properties,fred,new_gpa);
请注意,age和gpa可以存储在任何地方(甚至可能需要web请求),但访问的差异会被位于其间的properymap接口抽象掉.
我答案中的样本:
> Is it possible to have several edge weight property maps for one graph BOOST?
> Cut set of a graph, Boost Graph Library使用BiMap和Boost Multi Index容器存储属性
本文共计533个文字,预计阅读时间需要3分钟。
我想要梳理这里最好的方法是什么。基本上,我有一个系统,我收到外部请求,以便在我的模型中设置/获取值。问题是我的模型包含一个类,它可以嵌套,但请求是简单的(键,值)对。例如:struct
我想弄清楚这里最好的方法是什么.基本上我有一个系统,我收到外部请求,以便在我的模型中设置/获取值.问题是我的模型包含C类,它们可以嵌套,而请求是简单的(键,值)对.例如:
struct Foo { void setX(int x); int getX() const; struct Boo { void setY(float y); float getY() const; }: };
如果我收到一个请求为给定元素e设置set(y,21),那么我需要执行的操作将根据foo和boo是否已经存在而不同.必须为每个属性处理不同的可能性最终会编写大量代码.
在重新发明轮子之前,我想知道C中是否已经存在一个库或一个众所周知的技术,它允许以通用方式将这些平面动作映射到C结构(可以嵌套)中的变化.
谢谢
为此,Boost拥有Property Maps.> www.boost.org/doc/libs/1_57_0/libs/property_map/doc/property_map.html
它暴露的最基本的界面是
get(map, key) put(pmap, key, val)
对于左值/可读地图,您还可以获得索引器样式访问
pmap[key]; pmap[key] = newval; // if not const/readonly
您可以使用现有的属性映射适配器:
> identity_property_map和typed_identity_property_map
> function_property_map
> iterator_property_map
> shared_array_property_map
> associative_property_map
> const_associative_property_map
> vector_property_map
> ref_property_map
> static_property_map
> transform_value_property_map
> compose_property_map
或者写自定义的.
在实践中,甚至有一个dynamic_property_map看起来像这样:
put("age",properties,fred,new_age); put("gpa",properties,fred,new_gpa);
请注意,age和gpa可以存储在任何地方(甚至可能需要web请求),但访问的差异会被位于其间的properymap接口抽象掉.
我答案中的样本:
> Is it possible to have several edge weight property maps for one graph BOOST?
> Cut set of a graph, Boost Graph Library使用BiMap和Boost Multi Index容器存储属性

