解释一段c++代码
Explain a snippet of c++ codes
为了理解下面的C++片段,我刚刚开始学习C++中的"class"和其他高级技术。如果你认为这个问题很傻,请不要低估它,因为我在问这个问题之前已经在网上搜索过了!
该代码实现了一个名为"GK方法"的在线分位数算法。我试图通过学习代码来理解算法的实际工作流程。完整的代码有191行,所以我没有在这里复制它,它位于:https://github.com/coolwanglu/quantile-alg/blob/master/gk.h
我不理解的代码部分如下所示:
46 class entry{
47 public:
48 entry () { }
49 entry (unsigned int _g, unsigned int _d) : g(_g), delta(_d) { }
50 unsigned int g,delta;
51 };
我不明白#48,49是什么意思。
134 entry & ecur = iter->second;
这里"类型和名称"是什么意思?
最后,如果熟悉GK方法的人碰巧看到这样的情况:你能向我解释一下吗,或者建议一些参考资料来解释这个方法的实际实现。谢谢
- 第48行是默认构造函数。这是在声明
entry
类型的变量并且不指定初始化参数时调用的代码 - 第49行是另一个构造函数。这是在声明
entry
类型的变量并传递两个unsigned int
参数时调用的代码 - 第134行是
entry
类型的引用的声明。与号表示ecur
不是iter->second
的副本,而是对其的引用。对ecur
的任何更改都将反映在iter->second
中,因为它们引用了相同的变量
你可以在这里阅读更多关于构造函数的信息。以下是关于引用变量的教程。
相关文章:
- 在做一段时间内检查字符的无限循环
- 如何为一段代码启用 -permissive
- ExtTextOut 文本的持续闪烁,在一段时间后,文本将恢复为默认字体
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- 使用Qt Creator在调试模式下编译一段代码
- ::grpc::ServerReaderWriter 对象在另一个线程中一段时间后无法调用
- 一段时间后 CPU 使用率高
- 有没有办法在一段时间后将流程从流出中分离出来
- 无法理解一段具有完美转发和省略号的C++代码
- 在一段时间内更改标签文本
- 布尔函数在一段时间内不起作用
- 防止一段代码在协程中并发执行
- 埃拉托色尼的筛子在一段上
- 解决PNP在一段时间后返回坏的rvec和tvec
- 相机的旋转方向在一段时间后反转
- boost::asio::d eadline_timer 1ms 滞后一段时间
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 您可以在一段时间内迭代向量
- 列表STL的时间复杂性在一段时间内进行排序
- 通过创建单个线程来运行一段代码可加快执行速度