gpt4 book ai didi

c++ - 哪个更快?类函数还是带类指针的函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:21 25 4
gpt4 key购买 nike

在我的程序中,我使用了几个类和大量的函数。我想知道哪一个会工作得更快,或者它们之间在速度方面没有区别。

第一:类函数

class mex{
public:
int length,nof_evaluations,nof_fast_evaluations;
tree T;
calc_mex(vector<string>,vector<double>);
};

将被调用

mex m;
vector<string> v1;
vector<double> v2;
m.calc_mex(v1,v2);

第二:带有类指针的函数

class mex{
public:
int length,nof_evaluations,nof_fast_evaluations;
tree T;
};
calc_mex(mex*,vector<string>,vector<double>);

将被调用

mex m,*mptr;
mptr=&m;
vector<string> v1;
vector<double> v2;
calc_mex(mptr,v1,v2);

我在我的程序中同时使用了这两种方式,但更倾向于方式 1,因为它看起来更干净、更有条理。我还在程序的单次运行中调用了这些类型的函数 100K 次。所以我想知道他们中的任何一个是否会在时间上更好地工作。

谢谢!

最佳答案

决定因素应该是函数在逻辑上是否属于类,而不是速度。如果是,请使其成为成员(member)。如果不是,请使其成为独立功能。

顺便说一句,每个成员函数都隐式传递了一个 this 指针,因此两个版本之间没有太大区别。如果你真的关心性能。制作一个包含两个版本的示例程序,并在您的环境中使用大型数据集对其进行分析。

关于c++ - 哪个更快?类函数还是带类指针的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733691/

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