随笔分类 -  C++

摘要:vs2019编译grpc静态库 1 获取代码 git clone --recurse-submodules https://github.com/grpc/grpc.git 2 编译 编译64位库: 1 cmake .. -G "Visual Studio 16 2019" -A x64 -DCMA 阅读全文
posted @ 2025-02-10 18:21 钟齐峰 阅读(38) 评论(0) 推荐(0) 编辑
摘要:VS2019编译Poco C++静态库 1 编译 编译32位库: 1 cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -DPOCO_STATIC=ON .. 2 cm 阅读全文
posted @ 2025-01-09 14:50 钟齐峰 阅读(27) 评论(0) 推荐(0) 编辑
摘要:Install gcc-14 on Ubuntu 22.04 The steps: 1 sudo apt install build-essential 2 sudo apt install libmpfr-dev libgmp3-dev libmpc-dev -y 3 wget http://ft 阅读全文
posted @ 2024-07-05 09:29 钟齐峰 阅读(3178) 评论(5) 推荐(1) 编辑
摘要:麒麟V10 FS编译 一、环境说明 操作系统:麒麟V10 cpu架构:鲲鹏版ARM(64位) 数据库:达梦8.0 FreeSWITCH:1.10.10 二、编译前准备 下载相应版本库: 例如:安装gcc、g++、make、cmake、autoconf等工具,下载地址为: 1 https://upda 阅读全文
posted @ 2023-06-25 15:58 钟齐峰 阅读(474) 评论(0) 推荐(0) 编辑
摘要:C++11新增右值引用,谈到右值引用时可以扩展到一些相关概念: 左值 右值 纯右值 将亡值 左值引用 右值引用 移动语义 完美转发 返回值优化 一、左值、右值 概念1 左值:可以放到括号左边的东西叫左值 右值:不可以放到括号左边的东西就叫右值 概念2 左值:可以取地址并且有名字的东西就是左值 右值: 阅读全文
posted @ 2022-05-02 14:44 钟齐峰 阅读(435) 评论(0) 推荐(0) 编辑
摘要:环境:mac os + xcode 一、背景 作为c++程序员,相信我们都写过如下代码: void fun(int &x){} int main(int argc, const char * argv[]) { // insert code here... fun(10); return 0; } 阅读全文
posted @ 2022-05-01 14:27 钟齐峰 阅读(1716) 评论(0) 推荐(0) 编辑
摘要:1、原因 掌握并发编程技术,利用多核处理来提升软件项目的性能是软件工程师一项基本技能。本文以c++语言为例,探索如何进行并发编程。内容涉及C++11,C++14以及C++17的主要内容。 测试环境:MacBook Pro ,处理器 M1, 编译器 gcc ,IDE xcode。 2、并发与并行 Er 阅读全文
posted @ 2022-04-17 13:43 钟齐峰 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、安装VC6.0时解决安装卡死故障 Custom(定制) 选Data Access,点更改选项 把第一项ADO, RDS, and OLE DB Providers的勾去掉, 会提示是必须组件,忽略即可。 安装SP5和SP6。 二、启动时解决单步调试故障 菜单Tools->Options中的Deb 阅读全文
posted @ 2022-04-02 20:49 钟齐峰 阅读(340) 评论(0) 推荐(0) 编辑
摘要:上一文介绍中,我们详述了网络数据包的接收和发送过程,并通过介绍5中IO模型了解了内核是如何读取网络数据并通知给用户线程的。 前面的内容都是以内核空间的视角来剖析网络数据的收发模型,本小节我们站在用户空间的视角来看一下如何对网络数据进行收发。 相对内核来讲,用户空间的IO线程模型相对简单一些。这些用户 阅读全文
posted @ 2022-03-20 16:49 钟齐峰 阅读(219) 评论(0) 推荐(0) 编辑
摘要:如果遇到相等的值则不进行交换(这种排序方式是稳定的排序方式)。 1、原理:比较相邻的两个元素,将值大的元素交换到右边。 2、思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。完成一趟比较后,最后一个数一定是数组中最大的。所以下一趟排序中最后一个元素不参加比较。依次类推,每一趟比较 阅读全文
posted @ 2022-02-12 17:03 钟齐峰 阅读(391) 评论(0) 推荐(0) 编辑
摘要:一、介绍 选择排序(Selection sort)是一种简单直观的排序算法。其基本思想是:首先在未排序的数列中查找到最小或最大元素,然后将其存放到数列到起始位置;接着,再从剩余未排序的元素中继续寻找最小或最大的元素,放到以排序序列的末尾。依此类推,直到所有元素排序完毕。 二、图解 以数列{20,40 阅读全文
posted @ 2022-02-12 16:36 钟齐峰 阅读(1607) 评论(0) 推荐(0) 编辑
摘要:一、直接插入排序 基本思想:每一步将一个待排序的数据插入到当前已经排好序的有序序列中,直到插完所有元素为止。 算法实现:直接插入排序是将无序序列中的数据插入到有序的序列中,在遍历无序序列时,首先拿无序序列中的首元素与有序序列中的每一个元素比较并插入到合适的位置,一直到无序序列中的所有元素插完为止。对 阅读全文
posted @ 2022-02-08 16:33 钟齐峰 阅读(562) 评论(0) 推荐(0) 编辑
摘要:一、步骤(从小到大排序) 1、在数组中选一个基准数(通常为数组第一个)。 2、将所有比基准值小的值摆放在基准的前面,所有比基准值大的摆放在基准的后面(相同的数可以放到任意一边);在这个分区推出之后,该基准就处于数列的中间位置。 3、递归地把“基准值前面的子数列”和“基准值后面的子数列”进行排序。 下 阅读全文
posted @ 2022-02-02 19:46 钟齐峰 阅读(1254) 评论(0) 推荐(0) 编辑
摘要:一、部分概念 满二叉树:深度为k,且含有(2^k)-1个节点的二叉树。 完全二叉树:深度为k,又n个结点,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的节点一一对应时,称为完全二叉树。 堆的结构可以分为大根堆和小根堆,是一个完全二叉树。 每个节点的值都大于其左孩子和又孩子节点的值,称之为 阅读全文
posted @ 2022-02-02 13:31 钟齐峰 阅读(107) 评论(0) 推荐(0) 编辑
摘要:1、C方式 string sourcefilename = "D:\\Logo.jpg"; string destfilename="D:\\Logo1.jpg"; FILE* fp; if ( (fp=fopen(sourcefilename.c_str(), "rb" ))==NULL ) { 阅读全文
posted @ 2021-11-30 12:53 钟齐峰 阅读(1180) 评论(0) 推荐(0) 编辑
摘要:1 隐性性能开销 1.1 STL容器的clear的时间复杂度不是O(1) 很多人潜意识认为STL容器中clear()成员函数的时间复杂度为常量时间复杂度O(1)。原因是大家觉得对于vector而言,clear()之后,修改了size()的结果,不影响capacity()的结果,因而得出clear() 阅读全文
posted @ 2021-11-16 14:08 钟齐峰 阅读(818) 评论(0) 推荐(0) 编辑
摘要:1、静态库libtools.a源码 libtools.h #ifndef tools_h_ #define tools_h_ int sub(int x,int y); int mul(int x,int y); #endif libtools.cpp #include"libtools.h" in 阅读全文
posted @ 2021-10-09 15:37 钟齐峰 阅读(199) 评论(0) 推荐(0) 编辑
摘要:环境:centos 7 1、准备开发环境 $ yum groupinstall "Development Tools" $ yum install glibc-static libstdc++-static 2、下载源码 wget http://ftp.gnu.org/gnu/gcc/gcc-11. 阅读全文
posted @ 2021-08-31 09:52 钟齐峰 阅读(714) 评论(0) 推荐(0) 编辑
摘要:1、栈和队列 栈和队列都是以deque为底层容器的适配器。栈(stack)、队列(queue)、优先队列(priority_queue)这三种数据结构,准确的来说其实是一种适配器,因为底层都是以其他容器为基准。 栈:先入后出,只允许在栈顶添加和删除元素,称为入栈和出栈。 队列:先入先出,载队首取元素 阅读全文
posted @ 2021-08-14 20:38 钟齐峰 阅读(178) 评论(0) 推荐(0) 编辑
摘要:if (__cplusplus > 201703L) std::cout << "C++2a\n"; else if (__cplusplus == 201703L) std::cout << "C++17\n"; else if (__cplusplus == 201402L) std::cout 阅读全文
posted @ 2021-08-13 14:34 钟齐峰 阅读(368) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示