如何在stl算法中使用glm的operator==?

2024-01-11

是否可以在 stl 算法中使用 glm::gtx::comparison 中定义的运算符?

具体来说我有这个代码:

std::vector<glm::ivec3> vecA, vecB;    // vectors with content
bool result = std::equal(vecA.begin(), vecA.end(), vecB.begin());

默认情况下会失败,因为找不到运算符==。


虽然晚了几年,但我想分享我的解决方案。 我需要 std::map 和 std::set 的比较器函数。

经过一番修补后,我找到了具有以下代码的解决方案

#ifndef __UTIL_GLM__
#define __UTIL_GLM__
#include "glm/vec2.hpp"
namespace glm{
  template <typename T, precision P>
  bool operator<(const tvec2<T, P>& a,const tvec2<T, P>& b)
  {
    return (a.x < b.x || (a.x == b.x && a.y < b.y));
  }
};
#endif

在头文件 util_glm.hpp 中,并将其包含在需要比较器的地方

#include "util_glm.hpp"

我确信可以为 glm::ivec3 完成类似的解决方案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在stl算法中使用glm的operator==? 的相关文章

  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • glEnableVertexAttribArray 中“index”参数的含义以及(可能)OS X OpenGL 实现中的错误

    1 我是否正确理解 要使用顶点数组或VBO进行绘制 我需要所有属性在着色器程序链接之前调用glBindAttribLocation 或者在着色器程序成功链接后调用glGetAttribLocation 然后使用glVertexAttribP
  • 如何将点光源转换为卵形/椭圆形?

    我希望通过具有不同 x 和 y 值的 vec2 半径将当前的圆形光变成椭圆形 有没有办法根据我当前在片段着色器中的代码来做到这一点 uniform struct Light vec4 colour vec3 position vec2 ra
  • 引用计数指针的STL类?

    这应该是微不足道的 但我似乎找不到它 除非不存在这样的类 智能指针的 STL 类 或类集 是什么 UPDATE 感谢您的回复 我必须说我很惊讶没有标准实施 我最终使用了这个 http archive gamedev net referenc
  • 使用 STL 迭代器而不初始化它

    我想做这样的事情 container iterator it NULL switch eSomeEnum case Container1 it vecContainer1 begin break case Container2 it vec
  • lnk1104:无法打开“LIBC.lib”链接

    使用 GLee 将着色器写入我的 OpenGL 项目并编译后 我收到了错误LNK1104 cannot open file LIBC lib 我尝试按照其他人的建议添加它并忽略它 但没有解决问题 有没有其他方法可以解决我错过的这个问题 以下
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • const_iterator 和 iterator 有什么区别? [复制]

    这个问题在这里已经有答案了 这两者在 STL 内部的实现方面有什么区别 性能方面有什么区别 我想当我们以 只读方式 遍历向量时 我们更喜欢const iterator right 谢谢 没有性能差异 A const iterator是一个指
  • Eclipse 标记 OpenGL 函数无法解析

    我尝试在 Eclipse C C 中使用一些 OpenGL 函数 一些 标准 函数如 GlClear 可以被 eclipse 识别 而其他函数如 glBindBuffer 和 glEnableVertexAttribArray 则不能 它们
  • 使用draw()而不是eventloop时的pyglet

    我正在尝试用 pyglet 画一个圆 但当我使用 draw 函数而不是 app run 循环时 它是不可见的 有什么建议我可以做什么吗 谢谢 from math import from pyglet gl import window pyg
  • 为什么 OpenGL 给对象提供句柄而不是指针?

    OpenGL 的传统是让用户使用 unsigned int 句柄来操作 OpenGL 对象 为什么不直接给出一个指针呢 与指针相比 唯一 ID 有何优点 TL DR OpenGL ID 不会双射映射到内存位置 单个 OpenGL ID 可能
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 为什么 std::set 没有“包含”成员函数?

    我正在大量使用std set
  • 如何安全地将对象(尤其是 STL 对象)传入和传出 DLL?

    如何将类对象 尤其是 STL 对象 传入和传出 C DLL 我的应用程序必须以 DLL 文件的形式与第三方插件交互 并且我无法控制这些插件是使用什么编译器构建的 我知道 STL 对象没有保证的 ABI 并且我担心这会导致我的应用程序不稳定
  • 当 OpenGL 中同时绑定 1D 和 2D 纹理时,正确的行为是什么?

    假设你有这样的东西 glBindTexture GL TEXTURE 2D my2dTex glBindTexture GL TEXTURE 1D my1dTex glBegin 正确的 OpenGL 行为是什么 要绘制一维纹理 二维纹理还
  • 在 GLUT 中使用鼠标滚轮

    我想在 OpenGL GLUT 程序中使用鼠标滚轮来放大和缩小场景 我怎么做 Freeglut 的 glutMouseWheelFunc 回调与版本相关 并且在 X 中不可靠 使用标准鼠标功能并测试按钮 3 和 4 OpenGlut 对 g
  • 我应该使用函数还是无状态函子?

    这两段代码做同样的事情 如您所见 它将用于排序函数 哪个更好 我通常写后一种 但我看到一些程序员像以前那样做 struct val lessthan binary function
  • C++类名冲突

    我现在正在做一个项目 需要整合两个子项目 项目A是用C 编写的 项目B是用C编写的 一个问题是 在项目B中 有一个名为vector它是由其作者创建的 在项目 A 中 std vector in STL用来 因为项目B以后可能会更新 所以我不
  • GLSL NVidia 方形神器

    当 GLSL 着色器在以下 GPU 上生成不正确的图像时 我遇到了问题 GT 430 GT 770 GTX 570显卡760 但在这些上正常工作 英特尔高清显卡 2500英特尔高清4000英特尔4400显卡740MRadeon HD 631
  • 有没有快速创建集合的方法?

    目前我正在创建一个像这样的新集 std set a s s insert a1 s insert a2 s insert a3 s insert a10 有没有办法创建s在一行 int myints 10 20 30 40 50 std s

随机推荐

  • 在 Bootstrap 3 中启用触摸事件的推荐方法?

    既然 Bootstrap 3 已经发布 那么启用触摸的推荐选项是什么 像之前一样 https stackoverflow com questions 16759299 is twitter bootstrap suitable for to
  • 音频播放完毕后通知

    嗯 我正在尝试实现录音的基本功能 例如 录音 播放 暂停 停止 我可以完成所有这些 但唯一的问题是音频完成后如何收到通知 玩 我的意思是 如果我播放一个音频文件 那么一旦它播放完毕 我想要一个它现在停止的通知 到目前为止我已经用过 mPla
  • 在 Roxygen 中记录时:如何在 @details 中制作逐项列表?

    例如 在 details 部分中向 roxygen2 添加逐项列表的适当语法是什么 我可以创建一个 Latex 列表环境吗 似乎换行符被简单地忽略了 即 details text describing parameter inputs in
  • 错误@angular/fire构建错误地扩展了接口

    我开始新的 Ionic Angular 项目并添加 Angular Fire 包 当我运行 ionicserve 时 出现以下错误 Error node modules angular fire compat firestore inter
  • 忽略全局覆盖的 new/delete

    您好 我正在使用一个已全局覆盖 new delete 的库 但我对这个库有一个问题 问题是它必须在主函数中手动初始化 现在我尝试使用另一个库在调用 main 之前初始化一些函数 不幸的是这个库在这些函数中使用了 new 所以我收到错误 因为
  • 需要建议新的 AsyncTask 递归调用

    我需要建议这个解决方案是否可以接受并且不会导致溢出 我更新使用 AsyncTask 读取的数据 在 AsyncTask 完成后我需要一次又一次更新 该解决方案是否可以接受且安全 private class DownloadFilesTask
  • 如何在sql中转义“'”

    您好 我正在数据库中搜索名称组合 我传递的组合如下 firstName firstName middleName middleName lastName lastName 这很好用 但问题来了 名字里有一些 我该如何纠正呢 例如 Johns
  • MongoDB - 如何对对象内的多个属性进行查询并对结果进行分组

    I m trying学习 MongoDB 但我似乎不知道如何做到这一点 假设我有三个这样的对象 id 99990 type 15 attributes id 1 value 115 id 99991 type 5 attributes
  • Windows 上的 boost python 在 import("__main__") 时崩溃;

    我正在编写一个使用嵌入式 boost python 的程序 我的程序在 Linux Mint 上运行没有问题 但在 Windows 上却很痛苦 我正在使用 MingW 因此我尝试按照本网站上另一个问题的说明创建导入库 考虑到所有这些 程序编
  • 通过 Id (int) 获取视图 Id (string) 的更简单方法

    我的布局中有 24 个按钮 所有这些按钮都执行类似的操作 因此我想创建一个通用功能 但首先我需要知道按钮的名称 xml id 这是按钮的 XML 代码
  • Ada GPS IDE 似乎找不到 GtkAda

    我已经安装了 GNAT 编程工作室 GPS 和 GtkAda 它们似乎都工作正常 但是当我尝试在 从模板新建项目 下构建简单窗口项目时 我收到一堆错误 提示 文件 gtk ads 未找到 这似乎是一个目录 依赖性问题 GPS 不知道在哪里寻
  • UINavigationBar 使用动画更改色调颜色

    是否可以通过动画更改色调以获得更平滑的效果 这对我不起作用 UIView beginAnimations nil context nil self navigationController navigationBar setTintColo
  • Swashbuckle.AspNetCore v1.0.0 与 OAuth2,流程:应用程序 -> IdentityServer4

    我似乎无法让我的 net core Web API 与 swashbuckle OAuth2 和应用程序流程一起工作 当我单击 授权 按钮时 Fiddler 显示调用正常 并且我的本地 IdentityServer 4 回复了 access
  • Theano sqrt 返回 NaN 值

    在我的代码中 我使用 theano 来计算欧几里德距离矩阵 代码来自here https stackoverflow com questions 25886374 pdist for theano tensor import theano
  • 无法在共享驱动器上使用 java 和 smbj 读取文件

    我正在尝试使用 SMBJ jar https github com hierynomus smbj https github com hierynomus smbj 从共享驱动器中获取文件 我能够连接到共享磁盘 连接后 我执行的任何操作都会
  • 如何修改远程Erlang节点的代码搜索路径?

    我已连接到 Erlang 节点 remsh 如何修改代码路径 以加载未打包到我的版本中的库 操作代码加载 路径 的所有必要函数都在代码模块中 请参阅以下位置的文档 Erlang OTP代码模块 http www erlang org doc
  • C语言是按引用调用吗?

    我知道C语言中没有按引用调用 但是 有人说C中有Call by Reference 我很困惑 据我所知 当将因子交给C中的函数时 我知道传递给函数的值是通过制作本地副本作为参数来接收的 然而 在C 中 通过引用调用 是可能的 因为 仅因子和
  • 如何删除 Inno Setup 卸载过程中创建的 iu-....tmp 文件夹?

    在卸载过程中 Inno Setup 卸载程序将创建一个名为iu tmp in AppData Local Temp小路 根据文档 https jrsoftware org isfaq php uninsttemp它应该在重新启动笔记本电脑时
  • 使用 CLI 每秒运行一个 PHP 脚本

    我有一台运行 Cent OS 并带有并行 PLESK 面板的专用服务器 我需要每秒运行一个 PHP 脚本来更新我的数据库 这些在时间上是没有替代方法的 它需要每秒更新 我可以使用 URL 找到我的脚本http www somesite co
  • 如何在stl算法中使用glm的operator==?

    是否可以在 stl 算法中使用 glm gtx comparison 中定义的运算符 具体来说我有这个代码 std vector