C++ – 获取std::vector中的最小值、最大值以及对应的索引
1 获取std::vector中的最小值、最大值以及对应的索引 1.1 普通方法 普通方法就是遍历std::vector,对vector中的值进行一一对比,找出最小值、最大值及其对应的索引,示例代码如下 #include <iostream> #include <vector>…
- C++
- 2023-03-23
C++ – 使用cuda api获取本机显卡数量和显卡信息
1 使用cuda api获取本机显卡数量和显卡信息 我们可以在C++中结合CUDA API获取本机显卡数量以及每一个显卡的Memory Clock Rate、Memory Bus Width、Peak Memory Bandwidth等信息。 使用cudaGetDeviceCount函数返回连接到此…
- C++
- 2023-03-08
C++ – Windows/Linux跨平台获取本机CPU核心数
1 在Windows/Linux系统获取本机CPU核心数 1.1 使用Windows和Linux上的系统函数获取cpu的核心数 如果需要创建一个使用线程池的服务,那么线程池中的最大工作线程数目最好是少于本机CPU的核心数,这样既能最大化CPU的性能也能避免创建过多线程造成线程调度的开销,保持处理速度…
- C++
- 2023-03-01
C++ – Windows/Linux跨平台gbk与utf8字符集编码转换
1 Windows/Linux跨平台gbk与utf8字符集编码转换 在Windows系统上使用系统api,在linux上使用iconv进行gbk与utf8字符集编码转换 我已经将上述功能封装为single header的工具类,具体代码如下 #ifndef _CHARACTERSET_CONVERT…
- C++
- 2023-02-27
C++ – 使用标准库std::use_facet和std::codecvt进行跨平台gbk与utf8字符集转换
1 C++标准库中与字符集转换相关的类 1.1 std::use_local和facet C++中的std::local每个本地化环境对象至少包含了以下的标准facet, std::collate、std::collate std::ctype、 std::ctype std::codecvt<…
- C++
- 2023-02-27
C++ – websocket++库的可使用的所有事件总结
1 Websocket++库的事件 C++的websocket库Websocket++中使用事件机制管理websocket连接消息,比如在websocket连接打开时触发open消息,在接收到客户端/服务端时,触发message消息,就和在js、java中使用websocket一样。 在Websoc…
- C++
- 2023-02-14
C++ – 对字符串和图片进行base64编解码
1 cpp-base64 本次要使用的是Github上开源的base64编解码库:https://github.com/ReneNyffenegger/cpp-base64,也是我在实际项目中经常使用的base64编解码库,基本上满足了我的需求。 在Github官方仓库中提供了如何使用该库的官方页面…
- C++
- 2023-02-09
C++ – 导出接口函数和导出C++类
在C++实际的项目开发过程中,经常需要将核心功能打包成动态链接库(Dynamic Link Library)供第三方调用,在dll中我们可以不仅可以导出接口函数还可以导出C++类。 下面以简单的示例代码说明如何在C++导出接口函数和类。 1 C++中导出接口函数和导出C++类 1.1 C++动态链接…
- C++
- 2023-02-03
C++ – 一文搞懂std::future、std::promise、std::packaged_task、std::async的使用和相互区别
1 future future,翻译过来的意思就是未来、将来、前途、前程。 在C++11中,使用future作为获取异步任务(在单独线程中启动的函数)的工具模块的名字 ,无疑是非常贴切,因为在异步任务中,其返回的结果就是在未来(异步任务执行完)需要获取的结果。 在C++11中,头文件<futu…
- C++
- 2023-01-31
C++ – 我在项目实际开发中用到的第三方库/开源项目,涵盖网络、加密解密、GUI、网络、音视频、图片等等
在项目的实际开发过程中,特别是对于一些小型、中型的公司,由于高昂的用人成本,自己开发轮子在实际生产环境中的风险不可控性以及其他因素,没办法对每一种基础功能模块都自己造轮子,所以寻找成熟的、开源的替代方案是必要和安全的。 在多年的C++开发生涯里,我也逐渐在C++工程项目中使用了一些优秀的开源项目和其…
- C++
- 2023-01-30
C++ – std::numeric_limits简介与使用,用于获取指定数据类型的最大值与最小值
1 std::numeric_limits简介 std::numeric_limits是C++标准库提供的查询特定数据类型属性的模型函数,此属性包括数据类型的最大值、最小值等,比如获取float型的最大值、最小值等。 函数声明如下 template< class T > class nu…
- C++
- 2023-01-12
C++ – Windows获取电脑上摄像头设备数目、名字以及id
1 Windows系统获取摄像头信息 1.1 ICreateDevEnum::CreateClassEnumerator 在Windows系统上如果要获取摄像头的数目、摄像头的名字等信息,就需要使用Windows的系统API,这里的我们使用的API函数为ICreateDevEnum::CreateC…
- C++
- 2023-01-10