自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 C++不同平台下的RTTI实现

给定一个含有虚函数的对象的地址,找到对应的类名,不同平台下方法也不同,这是由于RTTI实现并没有统一的标准。

2023-11-28 15:04:08 120

原创 C++类内定义友元却无需类外声明的特殊情况

这样的代码并不generic,原因就是类模板作为参数可以有很多不同的类型,因此,如果友元函数使用了该类作为参数,则不需要在类外声明。将一个全局函数作为某个类的友元时,可以在类内定义函数,但必须在类外对函数进行声明。但有一种特殊情况并不需要再次声明。在上述例子中,四个函数都没有在类外进行声明,但只有。调用会出错,其他函数调用正常。因此如果想在类外进行声明时,需要对不同。每次实例化的时候,会同时实例化一个。函数,注意,operator<<函数的形参列表中不包含。

2023-10-27 14:16:16 148

原创 Windows使用CMake

Windows使用CMakeWindows使用CMake需要指定编译器如果使用的是MinGW的gcc和g++cmake_minimum_required(VERSION 3.10)# set compilerset(CMAKE_C_COMPILER "gcc")set(CMAKE_CXX_COMPILER "g++")# set the project nameproject(Tutorial)# add the executableadd_executable(Tutorial

2022-04-08 14:41:46 1961

原创 std::thread参数传递

std::thread参数传递std::thread中的参数传递可以用下图解释,首先看代码#include <iostream>#include <thread>class Base{public: Base() { std::cout << "Base default constructor" << std::endl; } Base(const Base &base) {

2022-01-02 23:46:50 1444

原创 Windows制作动态库(.dll)

文件目录如下:将项目dll_provider的Configuration Type设置为Dynamic Library (.dll)文件内容如下:IInterface.h#ifndef IINTERFACE_H_#define IINTERFACE_H_#include <windows.h>#define XEXPORT __declspec(dllexport)extern "C"{ XEXPORT void __cdecl Print(const char *s)

2021-12-27 17:08:05 681

原创 Git常用命令总结

Git常用命令总结基础设置查询版本git version查询配置列表git config --list配置姓名git config --global user.name "[你的名字]"配置emailgit config --global user.email "[你的email]"新增本地/远端数据库在本地文件夹新增数据库git init克隆远端数据库git clone [远端数据库url]增加档案进入索引增加档案进入索引git add [档案名称]增加

2021-09-20 00:28:31 193 1

原创 C++实现HTTP断点传输视频流

C++实现HTTP断点传输视频流Linux环境下socket编程实现,采用epoll实现并发,代码直接复制可用编译g++ server.cc -o server -Wall -std=c++11运行./server port file_path # example: # ./server 12000 video.mp4 代码及注释#include <sys/socket.h>#include <arpa/inet.h>#include <s

2021-07-12 11:36:53 1573

原创 C语言文件操作

C语言和C++文件操作C语言C++C语言//头文件#include <stdio.h>/* * 打开文件, 打开失败返回 NULL * FILE: 系统定义的一个数据结构,含有文件名、文件状态、文件当前位置等信息 * filename: 文件名 * modes: * "r": 打开文本文件,进行读操作 * "w": 打开文本文件,进行写操作 * "a": 向文本文件追加数据 * "r+": 打开文本文件,进行读/写操作 * "w+": 打开文本文件,进行读/写操作

2021-05-08 14:19:40 103

原创 C++派生类的拷贝或移动构造函数

C++派生类的拷贝或移动构造函数1. 当派生类定义了拷贝或移动构造函数,必须显式地调用基类的拷贝或移动构造函数,否则会调用基类的默认构造函数#include <iostream>class Base { public: Base() { std::cout << "Base default constructor" << std::endl; } Base(const Base &b) { std::cout << "Base cop

2021-04-23 16:04:24 2527

原创 C++查看模板实例化解决指针问题

C++查看模板实例化解决指针问题查看模板实例化的方法遇到的指针问题解决思路查看模板实例化的方法clang++ -Xclang -ast-print -fsyntax-only example.cc其中example.cc是想查看模板实例化的文件遇到的指针问题#include <iostream>template <typename T> void debug_rep(const T &t) { std::cout << "func1" <

2021-03-18 21:09:25 1316

原创 Linux网易云问题(高分屏)

Linux网易云问题(高分屏)执行如下命令找到netease-cloud-music.desktop文件sudo find / -name netease-cloud-music.desktop修改Exec这一行注意,加上--force-device-scale-factor=1.5不能解决窗口大小问题,不推荐此方法正确的方法为:Exec=env QT_SCREEN_SCALE_FACTORS=1.5 netease-cloud-music1.5为扩大的倍数,可自行更改...

2021-01-27 09:54:29 778

原创 ArchLinux安装的各种问题(找不到磁盘、闪屏、键盘失效、声卡、网络、时间不同步)

ArchLinux安装在移动硬盘的各种问题启动盘里找不到移动硬盘闪屏笔记本键盘失效找不到声卡网络问题解决ArchLinux的各种问题最重要的就是看官方文档,中文尤其英文都看一看,中文文档针对中国用户会额外提供一些建议,但可能更新不及时,两者一起看,取长补短。启动盘里找不到移动硬盘安装 GRUB EFI 应用时:grub-install --target=x86_64-efi --efi-directory=esp --removable --recheck加上--removable参数表示是移动

2021-01-26 16:37:23 4690

原创 Unimplemented: kernel reported driver version not implemented on Windows解决方法

可能原因是GPU显存不足,限制GPU显存使用大小即可gpus = tf.config.experimental.list_physical_devices(device_type='GPU')tf.config.experimental.set_memory_growth(gpus[0], True) #设置显存按需申请tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048) #限制最大显存使用2G...

2021-01-06 09:03:14 808 3

原创 Win10+TensorFlow(GPU)+MX450

Win10+TensorFlow(GPU)+MX450本文参考了以下两篇文章:TensorFlow版本PyTorch版本首先看官网给出的软件要求在桌面右击鼠标打开NVIDIA控制面板,点击左下角系统信息查看CUDA版本在网站CUDA Toolkit下载对应版本(我这里是11.0)下载,比较慢,可以用加速插件双击安装程序,如果没有安装VS,就取消VS勾选,然后一直下一步安装打开终端输入nvcc -V,输出以下字符安装成功在网站cuDNN里下载cu

2021-01-05 22:00:02 4732 4

原创 关于C++中 stod(s, p) 中 p 的用法

关于C++中 stod(s, p) 中 p 的用法#include <iostream>using namespace std;#include <string>int main(){ string s("123.44eee"); size_t num; size_t *p = &num; double a = stod(s, p); cout << a <<

2020-11-15 10:17:46 982

原创 如何理解:静态数据成员的类型可以就是它所属的类类型

#include<iostream>using namespace std;class Bar {public: static Bar bar; int a; double b;};Bar Bar::bar = { 12, 13.2 };int main(){ Bar obj = { 1, 3.15 }; cout << obj.a << endl; cout << obj.bar.a << endl; cout.

2020-10-23 22:41:33 585

原创 (a = b) = 1中(a = b)的返回值 (C++)

(a = b) = 1中(a = b)的返回值 (C++)先看如下一段代码;#include<iostream>using namespace std;int main() { int a; int b = 5; (a = b) = 1; cout << a << endl; cout << b << endl; system("pause"); return 0;}输出的a, b分别是多少?运行结果:

2020-09-30 09:41:28 1149

原创 贝叶斯优化解决最优解问题(Python实现)

贝叶斯优化解决最优解问题 贝叶斯优化常用于超参数优化,笔者在建模比赛中想到了它的其他用法。 题目:通过优化操作变量,使辛烷值损失达到最低。即通过训练好的模型,找到操作变量的最优解。 贝叶斯优化并不能找到最优解,只能找到较优解,和max_evals的大小有关,max_evals越大,得到的解越优。首先定义一个函数,函数参数是某个在范围内的解,范围定义在space中,函数返回的是一个列表,第一个是被优化的值,第二个是状态。例如:objection函数传入的是操作变量(特...

2020-09-23 22:39:05 2407

原创 VS引发了异常:读取访问权限冲突。p是nullptr(C++)

VS引发了异常:读取访问权限冲突。p是nullptr(C++)在写链表的时候有时会遇到以下问题:代码如下:#include<iostream>using namespace std;typedef struct stru { int data; struct stru *next;} LinkList;void CreateListR(LinkList *&L, int arr[], int n) { L = new LinkList; L->next

2020-08-02 10:09:44 27417 2

原创 谷歌Colab运行TensorFlow超详细使用方法

谷歌Colab运行TensorFlow超详细使用方法打开下面的网址,会弹出如下界面:https://colab.research.google.com/notebooks/welcome.ipynb在右上角完成登录操作,没有Google邮箱可以先注册一个。登录成功后,点击左上角的文件,选择新建笔记本。然后在弹出的页面左上角可以修改笔记本的名字尝试运行一下Python代码,用法和jupyter notebook一样,点击播放按钮即可运行。点击左边工具栏的文件按钮,并点击装载Google

2020-06-16 22:56:13 3181 1

原创 C++多态中虚函数的默认参数问题

C++多态中虚函数的默认参数问题1.基类中虚函数的默认参数会在编译过程就被保存,再调用子类的函数后发生多态,编译器会使用基类的默认参数。#include<iostream>using namespace std;class Base {public: virtual void func(int i = 0) { cout << "Person" << i << endl; }};class Son :public Base{publ

2020-06-14 14:44:53 1493

原创 C/C++中“指向结构体成员运算符”使用注意事项

C/C++中“->”使用注意事项“->”运算符叫做“指向结构体成员运算符”,是C语言和C++语言的一个运算符。使用时应注意符号左边应该为指针。#include<iostream>using namespace std;struct person { int *age = new int(10);};int mian(){ person p; //cout << p->age << endl; cout << *p.a

2020-06-11 17:55:20 1253

原创 C++链式调用函数注意事项

C++链式调用函数注意事项链式调用函数时,传入的参数值是之前的值#include<iostream>using namespace std;class Dog {public: Dog() :m_age(10) {} Dog& function1(Dog gp) { m_age += gp.m_age; return *this; } int m_age;};void func() { Dog g1; cout << g1.m_age &

2020-06-10 15:49:21 1345 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除