小编use*_*468的帖子

为什么new能够创建一个字符串数组?

我已经看到了以下列方式使用字符串数组的代码.

string *pointer = new string[runtimeAmmount];
Run Code Online (Sandbox Code Playgroud)

我还看到了字符串中的各个字符访问如下.

string aString = "this";
char bString[] = "that";
bString[3] = aString[3];
Run Code Online (Sandbox Code Playgroud)

以上将导致bString等于"thas".这表明字符串实际上是指向第一个字符位置的指针.但是,字符串仍然具有作为"string.c_str()"访问的成员函数,这意味着它本身作为对象不遵循指针的规则.这一切都有用吗?

注意:我原来的问题是不同的,但我想出来输入它.如果有人仍然可以回答我原来的问题只是为了验证我会很感激.我的原始问题如下:如果每个字符串在其整个生命周期中的长度变化,那么如何将字符串数组换成新的?弦不会相互碰撞吗?

我想出的答案是:字符串以某种方式包含指向C风格数组的指针,因此对象占用了一定量的空间.

要么

字符串是STL模板的一种,我还没有花时间去看.

c++ arrays string pointers stl

4
推荐指数
1
解决办法
7430
查看次数

搞砸了OpenGL深度缓冲区?

我的代码目前正在发生一些比较奇怪的事情.我在BlackBerry Playbook上运行它,它是OpenGL ES 1.1

编辑4:我删除了我发布的所有内容以简化我的问题.

我拿了代码并将其简化为绘制两个重叠的三角形.这是包含坐标的数组以及包含颜色的数组:

GLfloat vertices[] =
{
          // front
           175.0f, 200.0f, -24.0f,
           225.0f, 200.0f, -24.0f,
           225.0f, 250.0f, -24.0f,

          // back
           200.0f, 200.0f, -25.0f,
           250.0f, 200.0f, -25.0f,
           250.0f, 250.0f, -25.0f
};


static const GLfloat colors[] =
{
       /* front  */  1.0f,0.0f,0.0f,1.0f,1.0f,0.0f,0.0f,1.0f,1.0f,0.0f,0.0f,1.0f, //Red
       /* back  */  0.0f,1.0f,0.0f,1.0f,0.0f,1.0f,0.0f,1.0f,0.0f,1.0f,0.0f,1.0f //Green
};
Run Code Online (Sandbox Code Playgroud)

请注意,我的坐标在x方向上为0到1024,在y方向上为0到600,在z方向上为0到-10000.

这是我的设置代码,它反映了这一点:

    glClearDepthf(1.0f);
    glClearColor(1.0f,1.0f,1.0f,1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glShadeModel(GL_SMOOTH);

    glViewport(0, 0, surface_width, surface_height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    glOrthof(0, surface_width, 0, surface_height, 0, 10000);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
Run Code Online (Sandbox Code Playgroud)

我在两个地方都有深度启用,因为我试图排除在选择某种矩阵模式时应该使用它的可能性.

最后这是我的渲染代码:

void render()
{
    //Typical render …
Run Code Online (Sandbox Code Playgroud)

c++ opengl-es blackberry-playbook

0
推荐指数
2
解决办法
956
查看次数

标签 统计

c++ ×2

arrays ×1

blackberry-playbook ×1

opengl-es ×1

pointers ×1

stl ×1

string ×1