小编Ale*_*rry的帖子

使用指针C++实现双链表实现

我目前正在自学C++,并尝试使用部分完成的指针在C++中实现双向链表.我知道代码当前无法处理悬空节点或输出错误,我将在下面介绍这两个节点.但是,代码应该至少能够构造一个列表对象并向其添加元素.目前,当我尝试调用列表的构造函数时,我收到一个错误,表示我正在请求从LinkedList*到非标量类型LinkedList的转换.为什么我的列表被声明为指针?非常感谢任何帮助,谢谢!

LinkedList.h
#ifndef LINKEDLIST_H
#define LINKEDLIST_H

struct dataElement {
  int key;
  int id;
};

struct Node
{
    dataElement data;
    Node* next;
    Node* prev;
};


class LinkedList
{
public:
    /** Default constructor */
    LinkedList();
    /** Default destructor */
    virtual ~LinkedList();
    void addAtFront(int newElement);
    void addAtBack(int newElement);
    int removeTop();
    int removeBottom();
    int getTop();
    int getBottom();
    int findKey(int keyToFind);
protected:
private:
    Node* head;
    Node* tail;
    int size;
};

#endif // LINKEDLIST_H


LinkedList.cpp
#include "LinkedList.h"
#include <iostream>
#include <stdlib.h>


LinkedList::LinkedList()
{
size = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ pointers linked-list list doubly-linked-list

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

WebGL无法初始化着色器程序

我试图为WebGL编写一对着色器,这将允许我渲染一个颜色立方体.但是,当我尝试打开文件时,收到错误"无法初始化着色器程序".我该如何调试这个以及在哪里开始查看着色器?我已经能够使用更具体的错误进行一些调试,但我不知道从哪种一般消息开始.任何帮助将不胜感激!

这是代码:

<script id="shader-fs" type="x-shader/x-fragment">

  varying lowp vec3 vColor;

  varying highp vec3 vLighting;





  void main(void) {

    gl_FragColor = vec4(vColor * vLighting, 1.0);



  }

</script>



<!-- Vertex shader program -->



<script id="shader-vs" type="x-shader/x-vertex">

  attribute highp vec3 aVertexNormal;

  attribute highp vec3 aVertexPosition;

  attribute highp vec4 aVertexColor;



  uniform highp mat4 uNormalMatrix;

  uniform highp mat4 uMVMatrix;

  uniform highp mat4 uPMatrix;



  varying highp vec3 vLighting;

  varying highp vec4 vColor;



  void main(void) {

    gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);



    //Apply the coloration to the …
Run Code Online (Sandbox Code Playgroud)

javascript opengl-es glsl webgl

2
推荐指数
1
解决办法
4740
查看次数

尝试使用 openGL 创建纹理时缓冲区大小不足

我目前正在尝试使用 JOGL 生成带纹理的多边形表面,但收到一条我不明白的错误消息。Eclipse 告诉我“java.lang.IndexOutOfBoundsException:缓冲区中需要 430233 个剩余字节,只有 428349”。据我所知,由 readTexture 方法生成的缓冲图像的大小不足以与 glTex2D() 方法一起使用。但是,我不确定如何解决该问题。代码的相关部分如下,任何帮助将不胜感激。

public void init(GLAutoDrawable drawable) 
{
    final GL2 gl = drawable.getGL().getGL2();
    GLU glu = GLU.createGLU();
    //Create the glu object which allows access to the GLU library\

    gl.glShadeModel(GL2.GL_SMOOTH);              // Enable Smooth Shading
    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);    // Black Background
    gl.glClearDepth(1.0f);                      // Depth Buffer Setup
    gl.glEnable(GL.GL_DEPTH_TEST);              // Enables Depth Testing
    gl.glDepthFunc(GL.GL_LEQUAL);               // The Type Of Depth Testing To Do
    gl.glEnable(GL.GL_TEXTURE_2D);
    texture = genTexture(gl);
    gl.glBindTexture(GL.GL_TEXTURE_2D, texture);
    TextureReader.Texture texture = null;
    try {
        texture …
Run Code Online (Sandbox Code Playgroud)

java opengl buffer textures bufferedimage

0
推荐指数
1
解决办法
1898
查看次数

Python在运行时添加方法

我正在尝试在运行时动态地向类添加方法,并且看到一些问题:

#Here we define a set of symbols within an exec statement and put them into the dictionary d
d = {}
exec "def get_%s(self): return self.%s" % (attr_name, attr) in d

#Now, we bind the get method stored in d['get_%s'] to our object (class)
func = d['get_%s' % (attr_name)].__get__(d['get_%s' % (attr_name)], class)
setattr(class_instance, func.__name__, func)
Run Code Online (Sandbox Code Playgroud)

当我尝试调用生成的get方法时,我看到如下:

Traceback (most recent call last):
  File "Textere_AdvancedExample.py", line 77, in <module>
    count = fact.get_counter()
  File "<string>", line 1, in get_counter
AttributeError: 'function' object …
Run Code Online (Sandbox Code Playgroud)

python methods class class-method

0
推荐指数
1
解决办法
367
查看次数