我的std :: strings以UTF-8编码,因此std :: string <运算符不会删除它.我怎么能比较2个utf-8编码的std :: strings?
它不切割的地方是口音,é来自z,它不应该
谢谢
我拥有VS 2008 Pro,并希望与VS 2005的运行时MSVCRT80进行兼容性测试,但我不想仅仅为此购买它.有没有办法在不获得VS 2005的情况下链接MSVCRT80?
谢谢
我有一个班,我打算让别人继承.它有一个std :: vector,我只希望开发人员能够读取,但不能修改,我的基本函数修改它.我应该提供一个返回const迭代器的函数,或者将该向量公开为protected.
谢谢
如何使用Objective-C库在OS X中设置窗口的最大和最小大小?
我正在为自己构建一个API来进行2D骨架动画.
我有一个Bone类和一个Skeleton类.
Skeleton创建一个根骨,然后通过提供父骨骼,通过Skeleton的add方法添加后续骨骼.
我现在想要做的是添加动画和帧.
我在想的是一个可以加载和插入动画的类.所以这将是一个加载动画的对象.然后,在每个帧处,接收一个Skeleton并相应地修改Skeleton.
这是一个很好的设计吗?动画是否应该采用Skeleton,或者Skeleton是否应该采用动画并将其应用到自身?
有时,对于某些事情,例如在控制台上写一行,感觉就像所有对象都应该可以全局访问的东西.就像是:
writeError("UNHANDLED EXCEPTION",someData);
Run Code Online (Sandbox Code Playgroud)
数学函数之类的东西也是这样的.但是,在做这种事情时,你如何划清界限呢?
通常,我使用2个向量的点积来确定它们的垂直度或它们之间角度的余弦.在这个着色器中,一个香椿着色器,点积用于2种颜色,我无法将我的头部包裹在正是这样做的地方.
uniform vec2 resolution;
uniform sampler2D backBuffer;
void main(void)
{
vec4 to_gray = vec4(0.3,0.59,0.11,0);
float x1 = dot(to_gray, texture2D(backBuffer,vec2((gl_FragCoord.xy
+ vec2(1.0,1.0)) /resolution.xy)).rgba);
float x0 = dot(to_gray, texture2D(backBuffer,vec2((gl_FragCoord.xy
+ vec2(-1.0,-1.0)) /resolution.xy)).rgba);
float x3 = dot(to_gray, texture2D(backBuffer,vec2((gl_FragCoord.xy
+ vec2(1.0,-1.0)) /resolution.xy)).rgba);
float x2 = dot(to_gray, texture2D(backBuffer,vec2((gl_FragCoord.xy
+ vec2(-1.0,1.0)) /resolution.xy)).rgba);
float edge = (x1 - x0) * (x1 - x0);
float edge2 = (x3 - x2) * (x3 - x2);
edge += edge2;
vec4 color = texture2D(backBuffer,vec2(gl_FragCoord.xy / resolution.xy));
gl_FragColor = max(color - vec4(edge, …Run Code Online (Sandbox Code Playgroud) 给定一个路径,我想优化它,以便可以删除直线上的所有顶点.
例如:路径:
*******
* *
* *
***********
Run Code Online (Sandbox Code Playgroud)
可以优化为:
*-----*
| \
| \
*---------*
Run Code Online (Sandbox Code Playgroud)
但是我希望控制斜率的偏差,这样它就不必完全在斜率上.
什么样的算法可以做到这一点?
谢谢
这种情况通常如何处理?例如,一个对象可能需要做非常具体的事情:
class Human
{
public:
void eat(Food food);
void drink(Liquid liquid);
String talkTo(Human human);
}
Run Code Online (Sandbox Code Playgroud)
假设这是本课程应该做的,但实际上这些可能会产生超过10,000行的函数.所以你会打破他们.问题是,许多辅助函数不应该被它们所服务的函数调用.这使得代码在某种程度上令人困惑.例如,咀嚼(食物食品); 将由eat()调用,但不应该由类的用户调用,并且可能不应该在其他任何地方调用.
这些案件如何处理?我正在看一些真实的视频游戏,看起来像这样:
class CHeli (7 variables, 19 functions)
Variables list
CatalinaHasBeenShotDown
CatalinaHeliOn
NumScriptHelis
NumRandomHelis
TestForNewRandomHelisTimer
ScriptHeliOn
pHelis
Functions list
FindPointerToCatalinasHeli (void)
GenerateHeli (b)
CatalinaTakeOff (void)
ActivateHeli (b)
MakeCatalinaHeliFlyAway (void)
HasCatalinaBeenShotDown (void)
InitHelis (void)
UpdateHelis (void)
TestRocketCollision (P7CVector)
TestBulletCollision (P7CVectorP7CVectorP7CVector)
SpecialHeliPreRender (void)
SpawnFlyingComponent (i)
StartCatalinaFlyBy (void)
RemoveCatalinaHeli (void)
Render (void)
SetModelIndex (Ui)
PreRenderAlways (void)
ProcessControl (void)
PreRender (void)
Run Code Online (Sandbox Code Playgroud)
所有这些看起来都是相当高级的功能,这意味着它们的源代码必须非常冗长.这样做的好处在于,一眼就可以清楚地了解这个类可以做什么,并且该类看起来很容易使用.但是,这些函数的代码可能非常大.
程序员在这些情况下应该做些什么; 什么是这些类型的情况的适当做法.
我有一个文本行的文本文件,其中包含一个字符串,另一个字符串后跟最多4个整数,例如:
clear "clear water.png" 5 7
wet "wet water.png" 9 5 33 17
soft "soft rain falling.png"
Run Code Online (Sandbox Code Playgroud)
我看到的唯一方法是:
阅读直到找到空间
将字符串设置为湿
读到双引号
读到第二个双引号
将第二个字符串设置为wet water.png
而不是行尾
读到太空
把字符串放入字符串流
将结果整数推送到int的向量中
有一个更好的方法吗?
谢谢
c++ ×7
oop ×2
algorithm ×1
architecture ×1
cocoa ×1
geometry ×1
glsl ×1
macos ×1
objective-c ×1
parsing ×1
pathgeometry ×1
string ×1
unicode ×1
vector ×1
window ×1