当我查看 GNU 库的实现(好吧,主要是 libstdc++)时,我可以看到命名中有重复出现的模式。模板类型被命名_Tp
,成员有前缀_M_
,一些标记有双下划线等。我试图找到有关命名约定的文档,但无济于事。GNU 有一个样式指南,它也在代码中遵循,但更像是这个命名约定的一个子集。
你知道关于 GNU gcc 库实现的样式细节的任何文档吗?
提前致谢。
我将定义一个类并使用一个容器(可能std::set
)与自定义比较器函数(基本上,类成员变量的原始整数比较).我想知道我是否可以以某种方式保持这个设置std::sort
并使用std::find_if
对数性能而不是天真的线性搜索.
提前致谢.
我一直在简单的立即模式下使用OpenGL,并尝试使用显示列表传递给保留模式(我遗憾地了解到它已被弃用了一段时间).我想知道的是,当我输入时:
glNewList(list, GL_COMPILE);
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0.0f, 0.0f);
for (int i = 0; i < 10; i++)
{
glVertex2f(radius * cos(i * 2.0f * PI / 9.0f), radius * sin(i * 2.0f * PI / 9.0f));
}
glEnd();
glEndList();
Run Code Online (Sandbox Code Playgroud)
OpenGL预先计算for循环中的所有10个顶点并将它们发送到烘焙的图形卡,如:
glVertex2f(0.5f, 0.0f);
glVertex2f(0.499f, 0.0055f);
//so and so forth 10 times...
Run Code Online (Sandbox Code Playgroud)
或者它是否尝试为每个帧完成for循环(以及许多sin/cos操作)?换句话说,在显示列表中存储这样的圆形形状是合理的(并且使用glTranslatef,glRotatef等来完成其余的工作......)以避免每次帧更新中的三角运算,或者根本没有性能增益?
编辑:为避免混淆,我打算使用for循环创建此显示列表,然后在每次帧更新(即glutDisplayFunc())中通过glCallList(list)调用它.我没有为每一帧创建一个列表.