小编use*_*494的帖子

C++ vector std :: find()与自定义类的向量

为什么以下不起作用?:

MyClass *c = new MyClass();
std::vector<MyClass> myVector;
std::find(myVector.begin(), myVector.end(), *c)
Run Code Online (Sandbox Code Playgroud)

这会带来错误.我不记得确切的错误,对不起,但它说像MyClass和const MyClass这样的东西无法通过运算符进行比较==

但是,如果我使用非类数据类型而不是"MyClass"执行相同的操作,一切正常.那么如何正确地使用类?

c++ vector find

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

使用new初始化typedef结构

我正在使用GLFW并创建一个GLFWwindow,它在它的标题"glfw3.h"中声明如下:

typedef struct GLFWwindow GLFWwindow;

通常,在堆上初始化结构时,我会执行以下操作:

GLFWwindow *window = new GLFWwindow();
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:无效使用不完整类型'GLFWwindow {aka struct GLFWwindow}','GLFWwindow {aka struct GLFWwindow}'的前向声明

这是我对该问题的修复:

GLFWwindow **window = new GLFWwindow*();

这个修复实际上有效,但我不明白为什么我需要它.

  1. 我不明白为什么struct GLFWwindow不完整或为什么我做前瞻声明.似乎没有正确宣布某些事情.究竟我做错了什么?
  2. 当给出指向类型的指针时,操作员新做什么?

Thx提前

c++ struct pointers new-operator glfw

-1
推荐指数
1
解决办法
603
查看次数

标签 统计

c++ ×2

find ×1

glfw ×1

new-operator ×1

pointers ×1

struct ×1

vector ×1