gpt4 book ai didi

c++ - 在 C++ 中处理类的动态属性

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:42 27 4
gpt4 key购买 nike

我有一个容器类,我们称它为 TestClass 和一个通用属性类 Property。

现在我需要做的是允许 TestClass 的不同实例具有多个“属性”。这些属性将动态添加,并且可以在运行时定义新属性。

处理这个问题的天真方法似乎只是简单地使用一个类似 vector 的东西来存储 Property 类的各种实例。

class TestClass{
public:
std::vector<Property> properties ;
addProperty(Property newProperty) {....}
getProperty(String name) {....}
} ;

class Property{
String name ;
double value ;
Definition definition ;
....
};

class Definition {
....
} ;

但是,我需要在我的程序的其他部分做的是有一个有效的方法从 TestClass 说 getPropertyValue("X")...首先检查它是一个现有的属性,然后检索属性的值....以及各种其他操作。

使用朴素的方法会导致检查特定属性的方法效率非常低(根据属性名称进行猜测)。

最佳答案

您可以使用 std::map使用属性的名称作为键,使用属性作为值。与您天真的方法非常相似,但速度要快得多。

关于c++ - 在 C++ 中处理类的动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com