WSG的博客--盛年不重来,一日难再晨.及时当勉励,岁月不待人.

工程师打造中……
私信 关注
shaoguang_cn
码龄5年

生无路而勤为径

  • 924,764
    被访问量
  • 349
    原创文章
  • 4,550
    作者排名
  • 315
    粉丝数量
  • 于 2016-06-20 加入CSDN
获得成就
  • 获得268次点赞
  • 内容获得146次评论
  • 获得875次收藏
荣誉勋章
TA的专栏
  • C++
    4篇
  • 数据库
    1篇
  • ModernC++
    3篇
  • DICOM
    1篇
  • VC++
    57篇
  • VC++实战
    3篇
  • Qt
    70篇
  • Qt5实战
    4篇
  • C语言
    42篇
  • linux
    27篇
  • C#
    10篇
  • linux进程
    3篇
  • linux线程
    4篇
  • Linux网络编程
    2篇
  • 学习笔记
    44篇
  • Notepad++
    6篇
  • C++语法
    26篇
  • C++应用
    36篇
  • Arm开发板
    4篇
  • 数据结构与算法
    10篇
  • c语言经典100例
    42篇
  • VM虚拟机小问题解决
    5篇
  • 软件项目管理学习笔记
    4篇
  • 梦里梦外 花落花开
    5篇
  • 踩坑笔记
    2篇
  • C++进阶
    10篇
  • 图像处理之ITK_VTK
    9篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

InsightToolkit-5.1.2.zip

ITK 5.1.2 版本 源代码, 下载至官网。
zip
发布资源于 9 天前

鸿蒙OS C++编程规范

https://gitee.com/openharmony/docs/blob/master/contribute/OpenHarmony-cpp-coding-style-guide.mdC++语言编程规范目的规则并不是完美的,通过禁止在特定情况下有用的特性,可能会对代码实现造成影响。但是我们制定规则的目的“为了大多数程序员可以得到更多的好处”, 如果在团队运作中认为某个规则无法遵循,希望可以共同改进该规则。 参考该规范之前,希望您具有相应的C++语言基础能力,而不是通过该文档来学习C+
原创
0评论
0点赞
发布博客于 10 天前

cpp-p0267r10(图形库扩展).pdf

c++提案p0267r10, A Proposal to Add 2D Graphics Rendering and display to C++. C++ 2D图形渲染和显示扩展。
pdf
发布资源于 18 天前

C++提案N4771 网络扩展

C++ 标准草案 N4771, 与2018-10-08发布,里面介绍了C++ 网络标准的 标准库,难得的资料
pdf
发布资源于 18 天前

QGridLayout交换两个QWidget

交换QGridLayout中的两个QWidget.github传送门:https://github.com/shaoguangwu/SwapGridLayoutWidget亲测有效。
原创
0评论
0点赞
发布博客于 19 天前

QGridLayout重置行列比

Qt网格布局动态布局时,若行数或者列数减少时,需要重置比例,否则旧比例依旧存在: // 重置比例 for (int i = 0; i < gridLayout->rowCount(); ++i) { gridLayout->setRowStretch(i, 0); } for (int i = 0; i < gridLayout->columnCount(); ++i) { gridLayout->se.
原创
0评论
0点赞
发布博客于 19 天前

Qt区分Debug和Release

Qt Release版本下,有宏定义 QT_NO_DEBUG#if defined(QT_NO_DEBUG)# define _RELEASE#else# define _DEBUG#endif
原创
0评论
0点赞
发布博客于 22 天前

memcpy函数改进版memcpyEx函数源码

memcpy函数用于拷贝内存,但是该函数天生带有缺陷,即没有考虑内存重叠的情况。改进版拷贝速率比memcpy拷贝速率慢。 // 内存拷贝函数改进版,考虑内存重叠情况void *memcpyEx(void *dst, const void *src, size_t len){    if (dst == NULL || src == NULL)        return NULL...
原创
0评论
0点赞
发布博客于 3 年前

Qt5 右键菜单

类成员: QMenu *m_pRBMenu; QAction *m_pCloseAct; QAction *m_pMaxiMinimizeAct; QMenu *m_pSDMenu; QAction *m_pSoundOffAct; QAction *m_pSoundOnAct;创建右键菜单,连接槽函数:
原创
0评论
0点赞
发布博客于 4 年前

Qt中路径问题小结

在做Qt项目的时候,我们难免遇到到文件路径问题。 如QFile file("text.txt")加载不成功、QPixmap("../text.png") 加载图片不成功等等。今天就来做一个关于Qt路径问题的小结!首先需要弄清楚两个概念:绝对路径与相对路径绝对路径: 文件在硬盘上真正存在的路径。例如“text.jpg”这个图片是存放在硬盘       的“E:\book\目录
转载
0评论
0点赞
发布博客于 4 年前

Qt界面设计如何让文中居中显示?

1、点击选中文字所在控件,左边属性栏里找到【alignment】,展开可以看到水平设置和垂直设置,选择AlignHcenter即可。
原创
0评论
0点赞
发布博客于 4 年前

32位机虚拟内存地址最大0xFFFFFFFF是怎么得出来的?

我的理解是:32位机最大虚拟内存为4GB。因为2^32Byte = 4GB.1)2是怎么来的呢?计算机中识别的是0和1二进制数,不是八进制、十进制等,所以是2^32。2)4GB = 4*1024 = 4096MB= 4096*1024 = 4194304KB= 4194304*1024 = 4294967296Byte = 2^32Byte3)429496
原创
1评论
0点赞
发布博客于 4 年前

思源黑体官方下载地址

https://github.com/adobe-fonts/source-han-sans/tree/release
原创
0评论
0点赞
发布博客于 1 月前

数据库数据模型

目 录1 基本概念2 数据模型的三要素3 E-R模型3.1 实体3.2 联系3.3 属性3.4 实体-联系方法3.5 扩展的E-R模型4 数据模型5 关系模型1 基本概念 模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。常用的数据模型分为概念数据模型和基本数据模型。 (1)概念数据模型。概念数据模型又称信息模型,是按用户的观点对数据和信息建模;是现实世界到信息世界的第一层抽象,强调其语义表...
原创
0评论
0点赞
发布博客于 2 月前

Ubuntu18安装Realtek8125b网卡驱动

最近入手了一款带Realtek8125b网卡的主板,装Ubuntu18用于开发,由于缺少网卡驱动,导致连不了网,查阅相关资料,发现官网有驱动源码,此博客记录编译、安装驱动。此版本驱动源码转至下载频道:https://download.csdn.net/download/WU9797/12995768官网驱动源码下载地址:https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000
原创
7评论
0点赞
发布博客于 3 月前

r8125-9.004.01.tar.bz2

Realtek8125网卡Linux驱动源码,下载自官方,Ubuntu18.04亲测有效,记录此版本文件 9.004.01,编译、安装步骤参考博客:https://shaoguang.blog.csdn.net/article/details/109199093。
bz2
发布资源于 3 月前

CURL查询公网IP

Ubuntu和Windows下都可使用CURL命令来获取公网IP:eric@ubuntu:~$ curl ip.sb111.112.x.x还有一些其它的网站可以查询:curl ip.sbcurl ipinfo.io (慢)curl ip.cncurl cip.cccurl myip.ipip.netcurl ifconfig.iocurl httpbin.org/ipcurl members.3322.org/dyndns/getipcurl icanhazip.comc
原创
0评论
0点赞
发布博客于 4 月前

Qt获取本机网卡信息

//// netinfo.h//#include <QNetworkInterface>#include <QHostInfo>static QString interfaceTypeToString(QNetworkInterface::InterfaceType t){ switch (t) { case QNetworkInterface::Unknown: return "Unknown"; break;
原创
0评论
0点赞
发布博客于 5 月前

VTK智能指针——vtkSmartPointer

 VTK中的智能指针类为vtkSmartPointer,是一个模板类,继承自vtkSmartPointerSmart类。vtkSmartPointer类中定义一个vtkObjectBase类型的指针对象Object,用于存储智能指针中实际生成的对象。vtkSmartPointer<vtkLight> light1 = vtkSmartPointer<vtkLight>::New(); vtkSmartPointer中定义了静态函数New()来生成一个智能指针对象。该函数根据模板
原创
0评论
0点赞
发布博客于 5 月前

vtkDocHtml-9.0.1.tar.gz

VTK Version 9.0.1 官方doxygen html代码文档,官网不给力的时候下载本地浏览器使用吧
gz
发布资源于 6 月前

vtkDocHtml-8.2.0.tar.gz

VTK Version 8.2.0 官方doxygen html代码文档,官网不给力的时候下载本地浏览器使用吧
gz
发布资源于 6 月前

VTK-9.0.1.tar.gz

VTK9.0.1官方C++源代码 结合Qt5.12.8在Windows系统下使用cmake、visual studio 2017 / 2019编译成功 亲测可用 国外网站下载实在太慢
gz
发布资源于 6 月前

SimpleITK-1.2.0.zip

SimpleITK 1.2.0 官方C++源代码,官网是国外的,下载速度慢,放在这里,方便大家下载。
zip
发布资源于 6 月前

InsightToolkit-5.1.0.tar.gz

InsightToolkit Version 5.1.0 官方源代码,官网是国外的,下载速度慢,放在这里,方便大家下载。
gz
发布资源于 6 月前

Visual Studio(VS)启用更新的 __cplusplus 宏

/Zc:__cplusplus 编译器选项启用 __cplusplus 预处理器宏以针对最新的 C++ 语言标准支持报告更新的值。 默认情况下,Visual Studio 始终为 __cplusplus 预处理器宏返回值“199711L”。从 Visual Studio 2017 版本 15.7 开始便已提供 /Zc:__cplusplus 选项,该选项在默认情况下处于禁用状态。如果启用 /Zc:__cplusplus,则 __cplusplus == _MSVC_LANG。CMake中启用:if
原创
0评论
0点赞
发布博客于 7 月前

C++17结构化绑定

https://zh.cppreference.com/w/cpp/language/structured_binding
原创
0评论
0点赞
发布博客于 8 月前

CMake VS2019 编译VTK8.2.0启用C++17标准

CMakeList.txt中添加:(这里加在了project(VTK)之后)if (MSVC_VERSION GREATER_EQUAL "1900") include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("/std:c++17" _compiler_supports_cxx17) if (_compiler_supports_cxx17) add_compile_options("/std:c++17")
原创
0评论
0点赞
发布博客于 8 月前

VTK-9.0.0.tar.gz

VTK9.0.0源代码 结合Qt5.12.8在Windows系统下使用cmake、visual studio 2017 / 2019编译成功 亲测可用
gz
发布资源于 8 月前

C++11特性:魔法静态变量 magic static

魔法静态变量是C++11的核心语言功能特性,提案:N2660 - Dynamic Initialization and Destruction with Concurrency, 最早在GCC2.3 / Clang2.9 / MSVC19.0等编译器得到支持。另外可以参考 cppreference:存储类说明符...
原创
0评论
0点赞
发布博客于 9 月前

ubuntu磁盘挂载以及开机自动挂载

系统: Ubuntu 18.04磁盘: 240GB nvme ssd1. 磁盘挂载使用命令查看分区:sudo fdisk -lroot@ubuntu:~/workspace# fdisk -lDisk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectorsUnits: sectors of 1 * 512 = 512 bytes...
原创
0评论
0点赞
发布博客于 9 月前

VTK 隐藏Actor

https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/HideActorDisplay two spheres, then hide one, then hide both.#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vt...
原创
0评论
0点赞
发布博客于 9 月前

QLineEdit后面放置一个按钮

QToolButton* btn = new QToolButton; btn->setText("..."); btn->setCursor(Qt::ArrowCursor); QWidgetAction* action = new QWidgetAction(ui.lineEdit); action->setDefaultWidget...
原创
0评论
0点赞
发布博客于 9 月前

Qt5 TabWidget Tab栏 添加按钮

QPushButton* tabButton = new QPushButton(tr("+"), this); ui.tabWidget->setCornerWidget(tabButton);效果如下:
原创
0评论
0点赞
发布博客于 9 月前

Ubuntu20.04 LTS 更换国内阿里源

启动终端,备份源文件:sudo cp /etc/apt/source.list /etc/apt/source.list.backup将源文件更换为阿里源:# deb cdrom:[Ubuntu 20.04 LTS _Focal Fossa_ - Release amd64 (20200423)]/ focal main restricted# See http://help....
原创
0评论
1点赞
发布博客于 9 月前

ubuntu20.04设置中文输入法

ubuntu 20.04 在2020年04月24日正式发布,博主在Win10系统下使用VMware 15安装体验了一下,目前暂不支持搜狗输入法,所以还是老老实实使用ibus实现中文输入法吧。关键点:1. 在 设置-区域与语言 里添加中文输入源2. 在语言支持里选择键盘输入法系统为 IBus。3. 重启系统,按shift键看看能否切换呢?OK...
原创
0评论
4点赞
发布博客于 9 月前

Qt5获取当前用户名

#include <QDir>#include <QStandardPaths>#include <QProcess>QString getCurrentUserName(){ QString userName; if (userName.isEmpty()) { QStringList envList = QPro...
原创
0评论
0点赞
发布博客于 9 月前

Qt QTextEdit设置滑动条处于顶部或者底部

通过设置光标位置来改变滑动条位置void setTextCursorToTop(){ QTextCursor textCursor = ui->textEdit->textCursor(); textCursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor); ui->text...
原创
0评论
1点赞
发布博客于 9 月前

arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别

https://blog.csdn.net/Namcodream521/article/details/88379307
转载
0评论
0点赞
发布博客于 9 月前

WinSCP文件上传权限不足,错误3

切换到root用户root@:~# vi /etc/ssh/sshd_config按下方设置:# Authentication:LoginGraceTime 120#PermitRootLogin without-passwordPermitRootLogin yesStrictModes yes
原创
0评论
0点赞
发布博客于 9 月前

Ubuntu18.04安装交叉编译工具链gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf

https://blog.csdn.net/liuenming123/article/details/88651608
转载
0评论
0点赞
发布博客于 9 月前

DICOM Patient Position (0018,5100) - C++ enum

/** Patient Position (0018,5100) specifies the position of the patient relative to the imaging equipment space. This Attribute is intended for annotation purposes only. It does not provide an ex...
原创
0评论
0点赞
发布博客于 9 月前

DICOM Modality (0008,0060) - C++ enum

/** Type of equipment that originally acquired the data used to create the images in this Series. Tag: (0008,0060). VR: Code String (CS)
ote -# The XA modality incorporates the retire...
原创
0评论
0点赞
发布博客于 9 月前

C++设计一个精度达纳秒的计时器

可计时 纳秒-小时/**************************************************************************************** Copyright (C) 2020, Shaoguang. All rights reserved.**** Date : 2020/04/01***************...
原创
0评论
1点赞
发布博客于 10 月前

ITK深拷贝itk::Image

ITK版本:5.0.1template<typename TPixel, uint Dim>void deepCopyItkImageData(const itk::Image<TPixel, Dim>* src, itk::Image<TPixel, Dim>* dst){ if (!src || !dst) { retur...
原创
0评论
0点赞
发布博客于 10 月前

VTK vtkImageData转vtkPolyData

#include <vtkImageToPolyDataFilter.h>
原创
0评论
0点赞
发布博客于 10 月前

Qt VTK显示单张DICOM图像并调节窗宽窗位

开发环境:Qt 5.12.7( & Visual Studio 2017) VTK 8.2.0源代码:#include <QtWidgets/QApplication>#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractio...
原创
0评论
0点赞
发布博客于 10 月前

Qt判断鼠标移动的同时鼠标左键被按下

// QMouseEvent* e;if (e->type() == QEvent::MouseMove && (e->buttons() & Qt::LeftButton )) { // TODO}
原创
0评论
0点赞
发布博客于 10 月前

vtk同一窗口中多个Renderer(渲染多个场景)示例

vtk版本: 8.2.0平台:Windows 10#include <vtkNew.h>#include <vtkConeSource.h>#include <vtkRenderWindow.h>#include <vtkCubeSource.h>#include <vtkCylinderSource.h>#inc...
原创
0评论
0点赞
发布博客于 1 年前

Qt设置鼠标样式

this->setMouseTracking(true); //设置为不按下鼠标键触发moveEventvoid mouseMoveEvent(QMouseEvent* event){ QPoint mousepos = event()->pos(); //在坐标(0 ~ width,0 ~ height)范围内改变鼠标形状 if(mousep...
原创
0评论
0点赞
发布博客于 1 年前

QVTKOpenGLNativeWidget链接鼠标点击事件槽函数,获取鼠标点击处坐标

Qt UI可视化界面中放置一个QWidget,并将之提升为QVTKOpenGLNativeWidget,这里我将之命名为vtkWidget;构造函数中连接信号与槽: connect(ui.vtkWidget, SIGNAL(mouseEvent(QMouseEvent*)), this, SLOT(onVtkWidgetMouseEvent(QMouseEve...
原创
1评论
0点赞
发布博客于 1 年前

Qt检测系统语言并安装翻译文件

#include "MainWindow.h"#include <QApplication>#include <QLocale>#include <QTranslator>int main(int argc, char *argv[]){ QApplication a(argc, argv); QTranslator trans...
原创
0评论
0点赞
发布博客于 1 年前

Microsoft Edge官方下载地址

微软Edge换上Chromium 内核后确实不一样,快而简洁。正式版下载地址:https://www.microsoft.com/en-us/edge 正式版安装完成后,自带的旧版Edge会被覆盖,所以想保留旧版Edge的请谨慎下载安装。开发版下载地址:https://www.microsoftedgeinsider.com/zh-cn/download...
原创
0评论
0点赞
发布博客于 2 年前

CMake GUI 添加库d后缀

点击CMake界面Add EntryName: CMAKE_DEBUG_POSTFIXType: STRINGValue: d
原创
0评论
0点赞
发布博客于 2 年前

Visual Studio 2017, 2019 官网下载地址

VS2017:社区版地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=15专业版地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-v...
原创
0评论
0点赞
发布博客于 2 年前

C++自定义编译期警告和错误信息

1 MSVC编译器:注意:C++标准并不支持 #pragma message,但是msvc支持/** Transform expression \a _exp_ to string format. */#define __AUX_STR_EXP(_exp_) #_exp_/** Transform \a _exp_ to string format. ...
原创
0评论
0点赞
发布博客于 2 年前

_MSC_VER值对应的Visual Studio版本

微软官网链接:Predefined macros截至目前[2019-11-28]:Visual Studio version_MSC_VERVisual Studio 6.01200Visual Studio .NET 2002 (7.0)1300Visual Studio .NET 2003 (7.1)1310Visual Studio 2005 ...
原创
0评论
0点赞
发布博客于 2 年前

C++实现string_view

#pragma once#include <ostream>#include <string>#if __cplusplus > 201703L#define ___HAS_CHAR8T 1#else#define ___HAS_CHAR8T 0#endifnamespace fstd {namespace detail {nam...
原创
0评论
0点赞
发布博客于 2 年前

如何将C++玩成中文编程

以下代码仅供娱乐,切勿用于生产环境,以免被人追着打。测试环境:vs2017#include <iostream>#define 整数 int#define 返回 return#define 打印 std::cout#define 换行 std::endl#define 符号加 +#define 左括号 (#define 右括号 )#define 赋值 =#...
原创
0评论
0点赞
发布博客于 2 年前

C/C++预定义编译宏

Pre-defined C/C++ Compiler Macroshttps://sourceforge.net/p/predef/wiki/Home/The macros are found here:Standards Compilers Libraries Operating systems ArchitecturesGeneral guidelines are ...
转载
0评论
0点赞
发布博客于 2 年前

C++判断大小端

bool isLittleEndian(){ union U { int i; char c; }; U u; u.i = 1; return u.c == 1;}// 或者bool isLittleEndian(){ union U { int i; ...
原创
0评论
0点赞
发布博客于 2 年前

Google C++代码风格指南(在线版)

英文版:https://google.github.io/styleguide/cppguide.html中文版:https://zh-google-styleguide.readthedocs.io/en/latest/contents/#
原创
0评论
0点赞
发布博客于 2 年前

C++库或软件版本宏定义方式示例

#include <iostream>#include <string>#define XX_VERSION_MAJOR 1 // 主版本号#define XX_VERSION_MINOR 1 // 副版本号 #define XX_VERSION_REVISION 1 // 修正...
原创
0评论
0点赞
发布博客于 2 年前

windows的dierent.h

github传送门:https://github.com/tronkko/dirent将dirent.h拷贝至如:C:\Program Files\Microsoft Visual Studio 9.0\VC\include.目录下。/* * Dirent interface for Microsoft Visual Studio * * Copyright (C) 1998-20...
原创
0评论
0点赞
发布博客于 2 年前

OpenCV 3各模块说明

模块说明Core该模块包含 OpenCV 库的基础结构以及基本操作。Improc图像处理模块包含基本的图像转换,包括滤波以及类似的卷积操作。Highgui在 OpenCV 3.0中,分割为 imcodecs、videoio 以及 highgui 三部分。 这个模块包含可以用来显示图像或者简单的输入的用户交互函数。这可以看作是一个非常轻量级的 Windows ...
原创
0评论
0点赞
发布博客于 2 年前

微软开源C++标准库(STL)

近日,在 CPP 2019 大会上,微软 VC 团队宣布,把将C++ 标准库的实现开源!方便了C++程序员深层次学习STL。Github传送门:https://github.com/microsoft/STL
原创
0评论
0点赞
发布博客于 2 年前

VC++实现快速截屏

// 截取全屏#include <windows.h>#include <GdiPlus.h>#include <atlimage.h> // CImage#pragma comment(lib, "GdiPlus.lib")int main(){ HDC hdcSrc = GetDC(NULL); int nBitPerPixel = ...
原创
0评论
0点赞
发布博客于 2 年前

ubuntu安装Qt5

Qt安装打开终端,cd到文件所在目录设置权限sudo chmod +x qt-opensource-linux-x64-5.12.1.run安装sudo ./qt-opensource-linux-x64-5.12.1.run配置配置系统路径(解决找不到头文件、无法添加文件的问题)sudo vi /etc/bash.bashrc在文末添加如下代码:export QTD...
原创
0评论
0点赞
发布博客于 2 年前

linux g++开启C++11/14/17/20支持

sudo vim ~/.bashrc在some more ls aliases注释块的地方添加如下内容:# alias for g++ support C++ standard 11, 14, 17, 20alias g++11='g++ -std=c++11'alias g++14='g++ -std=c++14'alias g++17='g++ -std=c++17'alia...
原创
0评论
1点赞
发布博客于 2 年前

Ubuntu 18.04命令更换软件源

安装好ubuntu后,将软件源更换为国内:cd /etc/apt/ 然后会显示下面的源文件sources.list输入命令sudo cp sources.list sources.list.back备份源文件更换源文件将源文件内容更换,阿里云源如下:deb http://mirrors.aliyun.com/ubuntu/ bionic main restr...
原创
0评论
0点赞
发布博客于 2 年前

C++获取系统环境变量

// C++标准库方式 获取系统环境变量并打印#include <iostream>#include <cstdlib> // std::getev()#include <string>#include <vector>using String = typename std::string;using StringVecto...
原创
0评论
0点赞
发布博客于 2 年前

ITK读取RGB图像像素值

ITK版本:4.13#include <itkImage.h>#include <itkRGBPixel.h>// PNG对应#include <itkPNGImageIOFactory.h>// BMP对应#include <itkBMPImageIOFactory.h>// JPG对应#include <itkJPE...
原创
0评论
0点赞
发布博客于 2 年前

常用医学图像格式

格式名称 后缀 支持像素格式 BMP .bmp unsigned char,RGB(unsigned char) JPEG .jpg unsigned char,RGB(unsigned char) ...
原创
0评论
0点赞
发布博客于 2 年前

C++判断编译器所支持的C++标准

MSVC编译器通过_MSVC_LANG宏来判断,其他编译器通过__cplusplus 宏来判断。/*! The version of C++ standard that is being used. The C++17 standard.*/#ifndef MY_HAS_CPP17# ifdef _MSVC_LANG# if _MSVC_LANG > 201402L#...
原创
0评论
0点赞
发布博客于 2 年前

C++设计一个跨平台通用模板矩阵类类

github地址:https://github.com/shaoguangwu/GenericMatrix
原创
0评论
0点赞
发布博客于 2 年前

参考文献格式国家标准(7714-2015).pdf

信息与文献 参考文献著录规则(GB-T 7714-2015)国标2015(目前最新) 带书签 写论文什么的必备
pdf
发布资源于 2 年前

动态链接库VS静态链接库

静态链接库在所开发的程序中通过程序接口来调用库函数,这些库函数只有在连接时才会真正连接到应用程序中。静态链接库的缺陷:假设两个应用程序同时运行,并且使用了相同的静态链接库,那么实际上静态链接库要被加载到内存中两次,从而浪费内存空间。动态链接库与静态链接库类似,都是以二进制的方式存在,所不同的是编译器在编译调用了动态链接库的程序时,并不将库文件中的函数执行体链接到可执行文件中,而只在可执行文件中...
原创
0评论
0点赞
发布博客于 2 年前

C++ string与wstring之间的相互转换

/*! * \date 2019-08-18 * \author shaoguang*/#include <string> /// std::string, std::wstring#include <clocale> /// std::setlocale#include <cstdlib> /// std::wcstombs, std::mbs...
原创
0评论
0点赞
发布博客于 2 年前

C++ std::string字符串格式化

很遗憾的是,C++ 标准库 std::string并没有提供类似于sprintf之类的字符串格式化函数,所以就自己来实现咯。#include <memory>#include <cstdio>#include <string>template<typename ... Args>static std::string formatSt...
原创
0评论
0点赞
发布博客于 2 年前

C++ 类型安全的枚举enum class

通常情况下,我们定义一个枚举类型:/*! \enum The direction of axis.*/enum AxisDirection { AxisPositive, ///< The positive direction of axis [+]. AxisNegative ///< The negative direction of axis [-]....
原创
0评论
1点赞
发布博客于 2 年前

C++将std::string和std::wstring转换为数字的函数封装(字符串转数字)

更新:(2019/11/18)利用C++17新特性,将模板简单化,通过编译期检查来判断输入参数是否有效以及确定转换函数。#ifndef STRING_TO_NUMBER_HPP#define STRING_TO_NUMBER_HPP#include <type_traits>#include <string>template<class T>...
原创
0评论
2点赞
发布博客于 2 年前

C++位域, 重载++、--、重载bool示例

typedef struct min_index{ using uint8 = typename unsigned char; uint8 _val : 2; // 内部数据占用2字节空间 min_index() : _val(0) {} min_index(uint8 val) : _val(val) {} // 重载数据类型 operator uint...
原创
0评论
1点赞
发布博客于 2 年前

C/C++ 实现strstr函数

函数char *strstr(const char *str1, const char *str2)在字符串str1中查找第一次出现字符串str2的位置,不包含终止符 '\0'。参数str1 -- 要被检索的 C 字符串。 str2 -- 在 str1字符串内要搜索的小字符串。返回值返回在 str1 中第一次出现 str2 字符串的位置,如果未找到则返回 NU...
原创
0评论
1点赞
发布博客于 2 年前

C/C++ 实现strrchr函数

函数char *strrchr(const char *str, int c)在参数str所指向的字符串中搜索最后一次出现字符c(一个无符号字符)的位置。参数str-- C 字符串。 c-- 要搜索的字符。以 int 形式传递,但是最终会转换回 char 形式。返回值该函数返回 str 中最后一次出现字符 c 的位置。如果未找到该值,则函数返回NULL。源码...
原创
0评论
0点赞
发布博客于 2 年前

C/C++ 实现strchr函数

函数char *strchr(const char *str, int c)在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。其包含在头文件<string.h>中参数str-- 要被检索的 C 字符串。 c-- 在 str 中要搜索的字符。返回值该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 ...
原创
0评论
2点赞
发布博客于 2 年前

C++ 实现Variant类

Variant类借鉴于Qt的QVariant类,类似于Boost的any类。它把常用类型使用一个类包装起来,这样使用QVector等容器时,其内部就可以存储不同的数据。例如:std::vector<Variant> vec;vec.push_back(1); // 整形vec.push_back("str"); // 字符串vec.push_back(f...
原创
1评论
1点赞
发布博客于 2 年前

C++类六大函数、空类默认有的成员函数

一 C++类六大成员函数 构造函数、析构函数、拷贝构造函数、移动构造函数、拷贝赋值、移动赋值。 以class A为例:// C++ 类的六大成员函数class A{public: // 1. 构造函数 A(); // 2. 析构函数 ~A(); // 3. 拷贝构造函数 A(const A &); // 4. 移动构造函数...
原创
0评论
0点赞
发布博客于 2 年前

把软件添加到文件/文件夹的右键菜单、为文件和文件夹添加复制路径的右键菜单

原文:https://blog.csdn.net/u013719339/article/details/800892431 添加软件到文件的右键菜单,如sublime、webstorm1、win+R打开运行框2、输入regedit打开注册表3、按路径Computer\HKEY_CLASSES_ROOT\*\shell在左侧依次打开(Computer也可能叫计算机),也可复制这个路径到注...
转载
0评论
0点赞
发布博客于 2 年前

C++ GB2312与UTF-8之间的相互转换(Windows)

#include <windows.h>#include <sstream>#include <string>// UTF-8转GB2312std::string UTF8ToGBEx(const char *utf8){ if (!utf8 || strlen(utf8) < 1) return ""; std::stringst...
原创
0评论
1点赞
发布博客于 2 年前

C++如何实现用大括号“{}”初始化vector

转载自:https://www.jianshu.com/p/ffbb7d6403b3在C++11中,vector的初始化和等号赋值都出现了这样的语法vector<int> nums({1, 2, 3, 4, 5});vector<int> nums3 = vector({1, 2, 3, 4, 5});vector<int> nums2;nums...
转载
0评论
1点赞
发布博客于 2 年前

C++ 获取键盘事件

原文地址:https://www.runoob.com/w3cnote/c-get-keycode.html一 Windows 系统下的 vs 中可以使用 _kbhit() 函数来获取键盘事件,使用时需要加入 conio.h 头文件,例:#include <conio.h>#include <iostream> using namespace st...
转载
0评论
0点赞
发布博客于 2 年前

C++ 之栈溢出

一 栈是什么 如下图所示,除程序不可使用的内存区外,有效内存区域可分为栈(statck)、堆(heap)、数据段、代码段。 整个内存都是用来存储数据的,栈也不例外。栈主要用来存储程序的局部数据。对于C/C++来说,局部数据是指在函数内部定义的数据,例如在函数内部定义的变量、指针、函数参数等,它们都要保存到栈中。二 栈溢出 对于每个程序,栈能使用的内存是有...
原创
0评论
0点赞
发布博客于 2 年前

ITK&VTK+VS2017一些错误整理

目 录一 开发环境二 ITK错误整理2.12.22.32.4三 VTK错误整理3.13.2 3.33.4一 开发环境(1)ITK-5.0.0(2)VTK-8.2.0(3)Visual Studio 2017二 ITK错误整理2.1(1)问题:ITK读写PNG、BMP、JPG等格式的图像失败。抛出异常...
原创
1评论
0点赞
发布博客于 2 年前

OpenCV图像处理编程实例.pdf

OpenCV学习必备书籍,讲解通俗易懂,带例子与,带书签。其中使用C++语言讲解,很不错的一本书。
pdf
发布资源于 2 年前

C++ const与constexpr关键字

关键字constexpr于 C++11 中引入并于 C++14 中得到改善。它表示常数表达式。与const相同,它可应用于变量,因此如果任何代码试图修改该值,均将引发编译器错误。与const不同,constexpr也可应用于函数和类构造函数。constexpr指示值或返回值是常数,并且如果可能,将在编译时计算值或返回值。1.constexpr变量 con...
转载
0评论
0点赞
发布博客于 2 年前

C++实现strcpy,memcpy

// 实现strcpy// 为什么返回char *? 为了实现链式表达式,如:int len = strlen(strcpy(dest, src));char *strcpy(char *dest, const char *src){ assert(dest && src); char *str = dest; while ((*dest++ = *src++) !=...
原创
0评论
1点赞
发布博客于 2 年前

Qt清空QListWidget

QListWidget中的每一项都是一个QListWidgetItem类的指针对象,所以,我们清空QListWidget的时候务必要delete它。如下代码:while (ui.listWidget->count() > 0){ QListWidgetItem *item = ui.listWidget->takeItem(0); delete item;...
原创
0评论
0点赞
发布博客于 2 年前

C++求容器中的最小最大值

// Visual Studio 2015编译通过// 以std::vector容器为例#include <iostream>#include <stdlib.h>#include <algorithm> // std::minmax_element#include <vector> // std::vectorint mai...
原创
0评论
1点赞
发布博客于 2 年前

C语言通过偏移获取文件大小

#include <stdio.h>int main(){ FILE *fp = NULL; fp = fopen("D:\\test.txt", "r"); if (!fp) { printf("open file failed!
"); return 0; } // 以文件末尾为基准,偏移0字节 fseek(fp, 0, SEEK_END)...
原创
0评论
0点赞
发布博客于 2 年前

c++ while(a小于b小于c)是怎么回事

int a = 1, b=2, c = 3;while (a < b < c)是怎么回事呢?其实它相当于while((a < b) < c),而a < b其实是个bool值,要么为true(1),要么为flase(0),再将这个bool结果与c比较, 所以可以理解为:while (1 < c) 或者while (0 < c)。...
原创
0评论
3点赞
发布博客于 2 年前

C++单例模式

目录1 单例模式实现方法2 单线程下懒汉式单例模式3 线程安全的懒汉式单例模式4 饿汉式单例模式1 单例模式实现方法(1)懒汉式:故名思义,不到万不得已就不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化。(2)饿汉式:饿了肯定要饥不择食。所以在单例类定义的时候就进行实例化。(3)特点与选择: 由于要进行线程同步,所以在访问量比较大,...
原创
0评论
0点赞
发布博客于 2 年前