C++ – UTF8编码下的全角字符转半角字符
1 C++ UTF8编码下的全角字符转半角字符 如果输入的字符std::string是UTF8编码,因为UTF8字符串长度的不确定性,需要先将UTF8编码的字符串转换为宽字符Unicode编码的字符串,再进行全角到半角字符的转换,具体的转换过程参考以下代码: #include <iostrea…
- C++
- 2021-12-04
C++ – GBK编码下的全角字符转半角字符
1 C++全角字符转半角字符 在一些文章或者网页上的数字在复制到剪切板上面时经常会保持全角输入状态,这个需要将全角字符转换为半角字符。在转换的过程中,中文保持原有状态,中文标点符号保持原有状态,将中文空格清空,其他全角字符转换为半角字符,转换过程可参考以下代码: #include <iostr…
- C++
- 2021-11-30
C++11 – 快速学会正则表达式
转载自:https://ayaka.shn.hk/cppregex/ 1 概述 C++ 中正则表达式通常使用 R"(...)" 的形式,相当于 Python 中的 r"...",保证字符串内部的 \ 等字符不被转义。但是,R"(...)" 中的 () 是语法的一部分,一定不要当成字符串里面的内容。例…
- C++
- 2021-11-22
C++11 – 构建一个符合实际应用要求的线程池
1 什么是线程池 线程池从本质上可以看做是一个多生产者多消费者的多线程应用。 一个线程池包括以下四个基本组成部分: 线程池管理器:用于创建并管理线程池,包括创建线程池,销毁线程池,添加新的工作线程,添加工作任务; 工作线程:属于线程池中的线程,用于处理实际任务,在没有工作任务时等待,在任务队列不为空…
- C++
- 2021-11-08
C++ – C++使用cuda api获取当前GPU显卡的总共的显存容量、已使用显存容量、剩余显存容量
1 C++使用cuda api获取当前GPU显卡的显存容量、已使用显存、剩余显存 在一些使用场景下,当我们的应用程序需要从显卡中开辟显存时,为了增加程序的健壮性,常常需要在开启程序的时候获取当前电脑是否有足够的显存,在这一层面,所有的系统都没有提供太好的公用api可供调用,所以需要使用N卡的cuda…
- C++
- 2021-10-29
C++11 – 解析并获取可变参数模板中的所有参数
1 C++11解析并获取可变参数列表中的所有参数 C++11的新特性--可变参数模板(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数…
- C++
- 2021-10-27
C++11 – 封装std::thread,增加子线程启动、暂停、唤起、停止功能
1 封装std::thread,增加子线程启动、暂停、唤起、停止功能 C++标准库的std::thread已经为C++增加了很好的跨平台多线程编程体验,程序员只需要使用标准库std::thread就可以写出很好的多线程并发程序。但是在std::thread中对线程的控制需要自主控制。 我们经常会在子…
- C++
- 2021-10-21
C++ – C++实现Python numpy的矩阵维度转置算法,例如(N,H,W,C)转换为(N,C,H,W)
1 C++实现Python numpy的矩阵维度转置算法,例如(N,H,W,C)转换为(N,C,H,W) 1.1 python中使用numpy进行矩阵维度变换 在python中常常使用numpy的transpose对矩阵的维度进行转换,这里以(N,H,W,C)转换为(N,C,H,W)为例,请看一下代…
- C++
- 2021-10-15
C++ – 函数返回多个返回值的方法总结
1 C++函数如何像python一样返回多个返回值 使用过python的童鞋都知道,在python单个函数中可以返回多个函数值,比如: # -*- coding: utf-8 -*- def return_muliti_value(): return 1,'helloworld',[1,2,3] i…
- C++
- 2021-10-13
C++ – 判断本机文件是否存在的方式总结
C++ - 判断本机文件是否存在的方式总结 由于C++没有像python那样方便的os.path官方库,经常面临着判断一个文件是否在本机上存在都不易用,今天就总结下C++下判断本机文件是否存在的一些方法。 1 通用方法 1.1 使用std::ifstream判断 #include <iostr…
- C++
- 2021-09-15
C++11 – 委托机制的实现TinyDelegate
1 使用C++11实现委托机制 1.1 TinyDelegate类 1.1.1 代码 TinyDelegate.hpp #ifndef TINY_DELEGATE_H #define TINY_DELEGATE_H #include <functional> #include <c…
- C++
- 2021-09-09
C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作
1 使用std::thread在类内部创建多线程函数 在有些应用场景下,需要在某个类中以某个成员函数作为异步线程函数,或者需要多线程去执行某个耗时操作的成员函数。在这种应用场景下,知道如何在类内部以成员函数创建多线程函数就是一个比较基础的问题。 1.1 代码示例 demo代码如下: #include…
- C++
- 2021-09-09