分类: 小记

29 篇文章

C++ STL的pair和tuple的使用
1、pair的基本使用 1.1 pair概述 pair是C++标准模板库(STL)中的一个模板类,定义在<utility>头文件中。它可以将两个不同类型的值组合成一个单一对象,存储二元组。 std::pair 本质上是一个包含两个成员(first 和 second)的结构体。 1.2 pair的创建和初始化 #include <u…
JS的“值传递”与“指针传递”
在 JavaScript 中,变量的传递方式常常让人困惑。很多人会说“基本类型是值传递,对象是引用传递”,但其实更准确的说法是:JavaScript 始终是值传递,但对于对象来说,这个‘值’是一个指针(内存地址)的副本。 一、基本类型的值传递 对于原始数据类型(如 Number、String、Boolean、null、undefined、Symbo…
解决VTK读取图像的Origin错误问题之SetMemoryRowOrder()的使用
1. 问题概述 在使用VTK读取DICOM图像时有一个常见问题:通过vtkDICOMReader类读取的图像,与DICOM文件中记录的"ImagePositionPatient"值不一致,导致图像在三维空间中的定位出现偏差。 这一问题在与MITK等医学图像处理框架进行数据交互时尤为明显,MITK是直接读取"ImageP…
JS展开运算符
1. 使用语法 展开运算符(Spread Operator)(...)是JavaScript的ES6引入的一个重要特性,展开运算符极大地简化了JavaScript中数组和对象的操作,是现代JavaScript开发中不可或缺的特性之一。 展开运算符由三个英文句号(...)组成,可以应用于: 可迭代对象(数组、字符串、Map、Set等) 对象字面量(O…
QTimer的singleShot方法详解
1. QTimer单次执行概述 QTimer定时器默认是启动后一直循环执行,直至停止,当然,其也提供了对一般情况设置单次执行的方法setSingleShot(true);使用如下 QTimer *timer = new QTimer(); timer->setSingleShot(true); timer->start(1000); /…
启用新版Qt Creator的AI插件辅助写代码
1. 简介 目前最新的Qt Creator已更新至16.0.1,支持两个AI插件可用于辅助我们编写代码,分别是GitHub Copilot和AI Assistant 官方介绍: Qt AI Assistant Experimental Released Qt AI Assistant v0.9 Released – Deploy LLMs Loca…
vtk三维文字标签
在VTK (Visualization Toolkit)中,如果需要创建二维文字标签可以使用vtkTextActor很方便的实现,但是二维文字标签使用窗口上相对的二维坐标,是独立于显示三维模型窗口的。 那么想要同三维模型一起显示在窗口内,共同使用三维坐标系,就要考虑使用三维文字标签,VTK提供了几种方式来实现三维场景中的文字标签功能。 1. vtk…
对单层vtkImageData使用体绘制
使用vtkVolume对只有一层(第三维度为1)的vtkImageData数据进行体渲染时,可能会导致渲染出来的图像没有厚度甚至渲染失败。 当vtkImageData只有一层时,它实际上是一个二维图像,而不是一个三维体积,而vtkSmartVolumeMapper通常用于三维体积渲染。因此在处理二维数据时可能会导致VTK默认认为该二维数据的厚度为零…
枚举类型enum和enum class的区别
1. 枚举enum 传统的枚举类型,帮助开发者快速定义一系列整形常量。关于枚举类型的介绍和使用在这里不再过多介绍,示例如下: class MyClass{ public: enum Color { RED, // 0 GREEN, // 1 BLUE // 2 }; }; 相比于enum class的特点: enum的成员直接暴露在其定义的作用域中…
C++使用大小括号初始化变量
本文对普通变量、普通类对象在初始化时使用()和{}的情况进行区分说明,以免混淆不清。 一般使用()是使用构造函数初始化,使用{}是使用列表初始化,如下。 1. 基本初始化(略过) 这里大概对基本初始化方式做一个归纳 1.1 默认初始化 即只声明,让其调用默认构造函数。 对于基本变量类型(如int、double...),只声明就不会定义具体的初始值。…