C++ – 将一维数组/二维数组/三维数组作为函数参数传递给函数
在本文中将详细说明如何将一维数组、二维数组、三维数组作为函数参数传递给函数进行处理。 在C++中,一维数组可以理解为包含n个数字的内存块,例如int a[3]表示数组a为包含3个int类型数字的内存块; 二维数组可以理解以一维数组为元素的一维数组,例如2行3列的二维数组可以理解为两个元素的一维数组,…
- C++
- 2022-01-25
C++ – 使用宏区分不同系统平台、不同编译器、不同编译模式等编译期宏使用总结
1 区分不同系统平台 //----------------------------- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) #ifdef _WIN64 // win64 #else…
- C++
- 2022-01-25
C++ – 使用Crypto++/CryptoPP加解密库对字符串或者文件进行AES256加密
1 AES加密算法 Crypto++/CryptoPP加解密库官网:https://www.cryptopp.com/ 在写桌面程序的时候一些自定义的数据文件不可避免的需要放在本地,通常这种数据文件保存了一些敏感信息,所以必须想办法对其进行加密。然后在程序中对这种数据文件进行解密然后读取正确的内容。…
- C++
- 2022-01-14
C++ – 将std::vector中的数值拷贝到数组中
1 将std::vector中的数值拷贝到数组中 在程序实际运行过程中,为了防止数组越界经常使用stl 容器,但是在做数据交换时经常需要传递数据流的指针,这个时候就需要将stl 容器中的数据拷贝到数组中,当然,只针对int float double这种常规类型的数据。 #include <io…
- C++
- 2022-01-10
Duilib – Label控件文本换行
1 Duilib Label控件文本换行 1.1 Label控件不自动换行的问题 Duilib的Label控件在默认情况下是不支持文本换行的,比如在界面xml中有下面的Label控件定义: <Label height="300" name="Label_Test" text="None" al…
- Duilib
- 2022-01-06
C++ – 求解std::vector中topk数值以及topk数值对应的索引
1 C++获取vector中topk数值以及topk数值对应的索引 1.1 思路 topk问题是日常应用经常会遇到的问题,在python中对于多分类问题,经常需要输出top5的标签,在C++中,topk问题也是经常面对的问题。 比如给定一个std::vector<float>的容器,需要…
- C++
- 2022-01-06
C++11 – 使用std::codecvt进行字符编码转换需要注意的时间效率问题
1 使用std::codecvt进行Unicode转UTF8字符编码的时间效率测试 通常情况下,使用std::codecvt进行Unicode转UTF8编码会使用以下的函数: std::string Std_UnicodeToUTF8(const std::wstring& unicodeS…
- C++
- 2021-12-21
C++11 – 使用std::thread,std::shared_future,std::promise并行化/多线程化for循环,提升处理速度
1 应用场景 在实际的应用过程中,经常会遇到一个大数量的for循环耗时的问题,比如说出现了一个10000000次的for循环,每一次循环处理业务逻辑需要耗时1ms,如: for (int i = 0; i < 10000000; ++i) { dosomething() } 那么整个for循环…
- C++
- 2021-12-17
C++ – 格式化json字符串,方便展示json字符串的层次结构
1 格式化json字符串 1.1 目的 在C++ nlohmann json得到的字符串都是一整块的输出结果,对于json字符串的层次结构展示的不是很清晰,希望在打印json字符串的时候可以在控制台中看到层次结构分明的json字符串。 例如将: {"Peoples":[{"name":"张三","a…
- C++
- 2021-12-10
C++ – 将Unicode std::wstring字符串转换为Unicode std::string转义字符,类似于\uxxxx的形式
1 将Unicode字符转换为\uxxxx转义字符 实现效果: 将: 你好 转换为: u4f60\u597d 的形式。 1.1 C++代码 #include <iostream> #include <sstream> #include <iomanip> std:…
- C++
- 2021-12-10
C++ – 使用ffmpeg读取视频旋转角度并使用OpenCV根据旋转角度对视频进行旋转复原
1 视频中的旋转信息以及为什么会有旋转信息 Android或者ios等手机上录制视频时,由于重力感应或者录制视频的摆放方式的问题会导致录制的视频拥有旋转信息。如果是横屏录制(手机逆时针旋转90度),则录制的视频时不带角度的。如果是竖屏录制(正常的拿手机的姿势),此时的录制的视频的旋转角度是90度。如…
- C++
- 2021-12-07
Python – 使用scikit-video库获取视频的旋转角度并使用opencv_python根据旋转角度对视频进行旋转复原
1 视频中的旋转信息 Android或者ios等手机上录制视频时,由于重力感应或者录制视频的摆放方式的问题会导致录制的视频拥有旋转信息。如果是横屏录制(手机逆时针旋转90度),则录制的视频时不带角度的。如果是竖屏录制(正常的拿手机的姿势),此时的录制的视频的旋转角度是90度。如果再旋转90度,此时一…
- Python
- 2021-12-07