gpt4 book ai didi

c++ - 在 C++ 中计算每次调用的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-02 02:16:14 25 4
gpt4 key购买 nike

<分区>

我在网上冲浪,发现在每个函数调用中都有不同的计数方法。

1。使用仿函数

class count_number {
private:
int number;
public:
count_number(): number{1} {}
void operator()() {
std::cout << "Number " << number++ << '\n';
}
};
...
count_number counter;
counter();
counter();
counter();

输出:

Number 1
Number 2
Number 3

2。使用 Lambda

他们说它们类似于仿函数,唯一的区别是它们的可变性。

...
// Prior to C++ 23:
auto counter = [number = 1]() mutable { std::cout << "Number " << number++ << '\n'; };
counter();
counter();
counter();

输出与上面完全相同。

3。使用静态变量

变量 number 在每个函数调用中都存在。

void counter() {
static int number = 1;
std::cout << "Number " << number++ << '\n';
}
...
counter();
counter();
counter();

仍然输出完全相同。

问题是:

  • 这三种方式在内存效率、性能和可读性方面的优缺点是什么。
  • 您认为哪一个最好,为什么?如果没有,那是什么?
  • 除了持久化数据之外,在函数中使用静态变量还有什么意义?

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