- 博客(34)
- 收藏
- 关注
原创 【C++中的decltype是什么】
特性 auto decltype推导阶段 编译时 编译时推导规则 忽略顶层 const 和引用 保留完整类型信息使用场景 变量类型推导 表达式类型推导返回值推导 C++14 支持直接推导 C++11 中用于尾置返回类型引用和 const 默认忽略,除非显式指定 保留auto 更适合简化代码和变量类型推导。decltype 更适合需要精确控制类型的场景,如模板编程和复杂表达式类型推导。
2025-02-15 16:04:02
566
原创 opengl的裁剪空间的坐标系是如何定义的
裁剪空间是通过将顶点从模型空间(Model Space)或世界空间(World Space)经过一系列的矩阵变换,最终映射到裁剪空间的。裁剪空间是图形管线中的一个中间空间,顶点通过视图和投影矩阵变换后进入裁剪空间。裁剪空间坐标使用齐次坐标表示,通常是 (x, y, z, w)。裁剪空间的坐标范围是:-w ≤ x ≤ w、-w ≤ y ≤ w、-w ≤ z ≤ w。裁剪空间的坐标经过透视除法后会被映射到 规范化设备坐标(NDC),并且最终映射到屏幕空间进行渲染。
2024-12-26 05:50:02
983
原创 【QT进阶】QT的元对象机制
Qt 的元对象系统是其强大功能的基础之一。通过元对象系统,你可以实现信号与槽机制、动态属性、事件处理以及运行时的类型反射等。QMetaObject、QMetaProperty、QMetaMethod 和 QMetaEnum 等类使得 Qt 能够提供丰富的动态功能,大大增强了 Qt 的灵活性和可扩展性。元对象系统为 Qt 提供了类似于反射的能力,使得开发者可以在运行时操作对象的类、方法、属性和枚举等元数据,提升了应用程序的动态性和可维护性。
2024-12-13 17:22:40
728
原创 【windows+gtx4070tis布置深度学习和docker环境】
解压下载好的cudnn安装包cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip,同时打开刚刚安装cuda的地址,如果是默认路径, 那么是在”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8“路径下。在cudnn中的lib文件夹下,有一个x64文件夹,同理将里面的内容,拷贝到cuda安装目录下的lib文件夹下的x64文件夹中。安装前看是否已经有安装符合的版本,不符合的话先删除在安装。
2024-11-21 14:44:28
1100
1
原创 多进程的通信方式
本代码使用的是匿名管道。调用fork()之后,父进程和子进程会在同一位置继续执行代码,从fork()之后的那一行开始。但是它们各自拥有独立的内存空间和执行环境。管道是一种最简单的进程间通信方式,分为匿名管道和命名管道两种类型。匿名管道通常用于具有亲缘关系的进程间通信,而命名管道则用于无亲缘关系的进程间通信。
2024-05-06 16:57:33
406
2
转载 网格生成Gmsh快速入门教程 –3.Gmsh API
Gmsh API时只需引入导入其对应的库即可,下面以c++版本为例。代码是官方教程的x1.cpp基础上稍作修改,在一些需关注的部分添加了中文注释。在编译时需加上-lgmsh选项以包括动态链接库。在前面两篇文章1、2中我们分别介绍了图形化界面和内置解析器geo脚本的使用方式。今天来介绍下Gmsh的第三种使用方式:使用Gmsh API将其集成到其他软件中。将网格生成器与求解器等软件对接形成整体框架。
2023-11-01 15:17:06
1685
原创 QT Can not open *.obj.*.*.jom for write 的解决方法
从文件夹打开qtcreator试试如果上一步没有用的话,从项目-》manage kits-》构建和运行-》取消勾选“使用jom代替nmake”选项
2021-08-20 11:17:38
1335
2
转载 Windows开发记录
1 非控制台项目在输出窗口打印debug信息https://www.biecuoliao.com/pa/0KqgQ94.html
2021-08-12 20:47:49
145
转载 MFC问题记录
1 onTimerhttps://www.cnblogs.com/chengxuyuancc/archive/2012/06/08/2542269.html2 一些基本的函数非常重要的基础知识,走过路过千万不能错过http://www.jizhuomi.com/software/156.html3 CListCtrl使用过程中修改某行某列数据的坑必须要先有列头信息https://www.cnblogs.com/matrix-r/archive/2013/05/07/3064242.html一
2021-08-12 20:45:11
132
原创 osg/osgearth开发备忘录
目录一、osg1 非全屏输入记录:二、osgearth一、osg1 非全屏输入记录:osgViewer::GraphicsWindow *pWnd = dynamic_cast<osgViewer::GraphicsWindow*>(m_pViewer->getCamera()->getGraphicsContext()); if (pWnd) { pWnd->setWindowRectangle(20, 20, 800, 600); pWnd-&
2021-06-16 15:38:29
171
原创 osgearth数字地球框架搭建
总体思路:先创建一个窗口,然后窗口上创建一个矩形,矩形上创建一个graphics,然后再在graphics上创建viewer
2021-06-10 20:41:31
1115
转载 常用配置文件(INI, XML, JSON与YAML)使用说明
目录1 INIkey = valuesection注释:2 XML基本语法data vs metadata总结3 JSON基本语法注释总结4 YAML基本语法引用总结总结1 INIkey = value键值对[listen]ip = 127.0.0.1port = 8087username =password =visible = 0debuginfo = 0; to be continuedsection分割:使用方括号进行分割[ServerA]enable = 0por
2021-06-03 09:25:47
2363
原创 Qt输出缓冲区大小设置
使用qDebug()输出信息的时候,经常会因为输出内容的大小小于缓冲区而无法显示,此时可以通过把缓冲区的大小置为0解决。setvbuf(stdout, nullptr, _IONBF, 0);qDebug() << "hello,world" << endl;
2021-05-14 10:26:02
1853
原创 Qt传输字节流需要注意的问题&QByteArray使用注意事项
需要使用.data使用QByteArray的时候,强转,没有’\0’,所以要指定长度:QByteArray msg3((char*)(&xiaoming), sizeof(xiaoming));QByteArray的时候用.data()访问数据呀!!!并且.data()返回的是指针#include <QtCore/QCoreApplication>#include <QDebug>#pragma(push)#pragma(1)struct head
2021-05-11 11:26:18
1373
转载 大小端模式对数据存储的影响
大端模式大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。例子对于内存中存放的数0x12345678来说如果是采用大端模式存放的,则其真实的数是:0x12345678如果
2021-05-10 15:42:18
655
转载 QT中将QByteArray以十六进制输出
QString Widget::toHexadecimal(const QByteArray &byteArray){ QString str; for(int i = 0; i< byteArray.length(); i++){ QString byteStr = QString::number(static_cast<uchar>(byteArray[i]), 16); if(byteStr.length() == 1) st
2021-05-10 10:54:53
3802
转载 C++面试问题汇总
new和malloc的区别文章链接:https://www.cnblogs.com/qg-whz/p/5140930.html另:C++中的new、operator new与placement new:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html00
2021-03-07 22:39:15
200
转载 运算符与表达式
运算符优先级同一优先级的运算符由结合方向次序决定值得注意的点:上文摘自http://c.biancheng.net/cpp/html/462.html
2021-03-01 21:28:20
161
原创 strlen和sizeof的区别
基本含义sizeof()实际上是一个单目运算符,计算括号内对象的内存大小。strlen()是求括号内字符串、以括号内地址为首址的字符串为首址,下一个“\0”为结束标志的长度。strlen()以“\0”为结束标志尤其是在没有指定大小的字符型数组中,以“string”方式赋值给字符数组时会自动在末尾加入“\0”,以‘a’单个字符方式赋值时不会在末尾加上“\0”,所以:例子1#include <iostream>using namespace std;int main() { cha
2021-03-01 12:59:19
115
原创 泛化编程及模板元编程入门
目录1. 全特化和偏特化2. 模板元编程例子1 在编译阶段实现阶乘使用enum编译实现使用static const T编译实现例子2 再进一步泛化实现乘方的功能进一步泛化简化函数的调用1. 全特化和偏特化https://harttle.land/2015/10/03/cpp-template.html2. 模板元编程例子1 在编译阶段实现阶乘使用enum编译实现#include <iostream>using namespace std;template<unsigned
2021-02-10 11:25:55
318
原创 排序问题
目录一、一些算法函数1. 快速排序:用于待排元素处于连续的存储单元比较函数:例子1例子2一、一些算法函数1. 快速排序:用于待排元素处于连续的存储单元void qsort(基地址,元素个数,元素大小,比较函数(增序/降序))比较函数:函数名可以随便取,但是返回值类型必须是intint compare(当前比较元素1地址,当前比较元素2地址);例子1对int类型数组排序:#include<stdio.h>#include<stdlib.h>#define m
2021-02-08 13:56:18
469
原创 C++学习笔记之群体类和群体数据组织
函数模板1个参数:#include<iostream>using namespace std;template<class T>void outputarray(const T* array, int count) { for (int i = 0; i < count; i++) cout << array[i] << " "; cout << endl;}int main(){ const int A_C.
2021-01-28 13:46:16
308
原创 C++学习笔记之多态性(2)
运行了一段书上的代码,发现不一样使用的是vs2019#include<iostream>using namespace std;class Base {public: virtual void fun1() { cout << "Base::fun1()" << endl; } virtual ~Base() {}};class Derived1: public Base {public: virtual void fun1() { cout.
2021-01-26 19:58:58
460
1
原创 C++学习笔记之多态
做了一个小实验,验证会执行哪个+#include<iostream>using namespace std;class Complex {public: Complex(double r = 0.0, double i = 0.0) :real(r), imag(i) {} friend Complex operator+(const Complex& c1, const Complex& c2) ; void display() const; doubl.
2021-01-16 00:05:04
105
原创 C++学习笔记之继承与派生
定义一个shape类,在此基类基础上派生Rectangele 和circle类,二者都有getarea()函数计算对象的面积,使用Rectangele 类创建一个派生类square类。#include<iostream>using namespace std;class shape{public: virtual double getarea() = 0;};class Rectangle :public shape{private: double longth; d.
2021-01-13 23:04:22
398
原创 C++学习之数组、指针、字符串
C++学习之数组、指针、字符串(1)声明一个参数为整型,返回值为长整型的函数指针;声明类A的一个成员函数指针,其参数为整型,返回值长整型。#include <iostream>#include <string>using namespace std;long ItL(int i) { long a=5; return a;}class A {public: long itl2(int i) { long a = 8; return a; }
2021-01-11 21:54:30
348
原创 c++学习之数据的共享与保护
#chap5_14定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数getTotalWeight(),计算二者的重量和#include <iostream>using namespace std;class Car;class Boat {public: friend void getTotalWeight(Boat& b, Car& c); int height;private: int weight=10;};class
2021-01-08 15:53:29
263
原创 Qt提示没有qwebenginewidget模块
较高版本没有这个模块了,就Qt5.13.2而言,使用MSVC2017可以解决。从UI-Debug处选择Kit,设置为MSVC2017 64 bit即可
2020-04-05 17:21:42
4131
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅