如何解决较大的静态数据成员,继承和性能
| 我不太确定如何问这个问题。我需要在程序开始时将大量数据存储到向量中,但只需一次。我尝试将向量my_vect
放入基类的构造函数中,以将所有数据加载到其中,但是问题是,数据需要由将在整个程序中创建的派生类使用。
本质上(除非我采取了完全不同的方法?),矢量必须是静态的,因为我不想每次创建子类时都必须将数据重新加载到矢量中。我可以以某种方式全局创建此ѭ0以避免这种静态单例现象吗?我还需要能够在派生类中极其快速地遍历my_vect
。在每个文件中加3英镑是一个不错的选择吗?请原谅我的困惑,并说您是否需要澄清。
编辑:
这是我程序的关键。我有一个向量,它可以从文本文件中读取数千行,并按单词存储它们。没问题。我需要在程序开始时执行此操作,并且只想存储一次。将它们存储后,我需要的每个类都需要对向量进行快速my_vect[incr]
访问。我尝试将向量作为5放入基类中,以便从一开始就对其进行初始化,但是问题是,每次创建新的派生类对象时,它都会再次将所有数据加载到向量中。我只希望向量存储一次,并在各处使用。也许单身人士没有走的路吗?
解决方法
为什么需要从单例继承来使用它提供的数据?您可以将单例作为数据提供者,并让其他类使用它来访问数据。
实际上,您甚至不需要单身人士。只需创建一个带有静态字段和静态方法的普通类即可初始化该字段。然后,在启动任何线程以简化代码之前,从
main()
中调用静态方法。对于其余的类,由于该类没有数据,因此您可以花费很少的金钱实例化它,并像使用其他任何类一样使用它。
, 单身人士是邪恶的。您最终面临的问题多于收益,但是如果您仍然想使用Singleton,后果自负,您可以从中了解如何继承Singleton。
, 您是否考虑过将数据封装到另一个类中(该类称为Data,是原始类的基础和派生类),该类会初始化并保留您的vector
?您可以使Data为单例,并在Base的构造函数中获取其实例,然后由Derived调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。