自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cpp加油站的专栏

公众号:cpp加油站,专注于分享linux下c/c++开发经验,做有质量和温度的博主

  • 博客(116)
  • 资源 (3)
  • 收藏
  • 关注

原创 纯小白进,Trae国内版和国际版区别

说来说去,有条件的话,你两个版本都同时安装试一下,没有什么比你自己的亲身感受更强了,一台电脑是可以同时安装两个版本的,他们是完全独立的,没条件,你就使用国内版,掌握好提示词技巧,也能用的很好。您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。我看到有很多同学还不知道Trae国内版和国际版区别在哪里,该选择用哪个,今天我以自己亲身使用经验来说明一下。好了,今天就说到这里了,如果对你有所启发,欢迎一键三连。3个字获取加入方式。

2025-04-30 17:09:02 300

原创 Trae中配置和使用MCP 服务保姆级教程

您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。从21号开始,Trae开始陆陆续续的灰度推送了一次新版本,有的用户是21号收到的更新,有的用户是22号收到的更新,本次更新我愿称之为王炸级更新,具体更新内容可以去看我的上一篇文章。本次更新其中的一个内容就是支持了MCP 服务,那么什么是MCP呢,它的全称是。

2025-04-24 19:19:25 510

原创 Trae 用户交流:分享几个让 AI 写代码既顺手也顺眼的小技巧(2)

您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。最近比较忙,都没什么时间写公众号了,今天简单点,分享几个Trae的使用小技巧吧。

2025-04-23 10:00:05 38

原创 怎么用trae开发一个trae插件

您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。今天来说一说,怎么用trae开发一个trae插件。

2025-04-10 19:28:15 200

原创 以前需要个小工具到处搜,现在直接用Trae花10分钟做一个,太香了

这个事情折射出一个道理,AI时代真的跟以前不一样了,想想如果是以前,我要么网上找个什么工具来提取,要么一个链接一个链接的放到浏览器上去下载,反正都是我认为很麻烦的事情,但是现在用Trae来写个工具,整个操作过程就很丝滑了。然后呢,我想到是不是可以去市面上找个什么工具用一下,准备搜的时候,我灵光一闪,这个功能其实是个比较简单的功能,我不如用trae做一个小工具用一下,说做就做。您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。

2025-04-10 19:26:55 30

原创 AI编程中的设计师思维:如何让Trae高效执行而不失控

您好,我是程序员夏叶,国内某金融中厂c++程序员,之前写了一些c++方面的知识,最近比较迷恋AI编程,所以分享了不少AI编程方面的经验,有兴趣的可以关注我的公众号,一起学习,共同进步。用了一段时间的AI编程以后,我最大的感受就是,AI其实就是个效率比较高的全能型工匠,我自己才是设计师,如果我不给AI限定一些规则,它有可能会胡编乱造,不用对方法,中间真的会消耗好多时间,为什么这么说呢,下面我来复盘一下我得出这个结论的过程。

2025-04-03 21:26:22 161

原创 拒绝切换IDE,10分钟让Trae编辑器化身C++神器,智能补全、编译调试一网打尽

您好,我是程序员夏叶,国内某金融中厂c++程序员,之前写了一些c++方面的知识,最近比较迷恋AI编程,所以分享了不少AI编程方面的经验,有兴趣的可以关注我的公众号,一起学习,共同进步。今天说一下我的老本行c++,怎么在trae中配置单纯的c++开发和编译环境呢,以windows系统为例。

2025-04-03 21:25:21 1014

原创 别再手动搬运插件了!用VSPlugin Helper一键穿透SSH,让Trae远程开发秒接VSCode生态

您好,我是程序员夏叶,国内某金融中厂c++程序员,之前写了一些c++方面的知识,最近比较迷恋AI编程,所以分享了不少AI编程方面的经验,有兴趣的可以关注我的公众号,一起学习,共同进步。我是在trae的windows海外版出来以后第一时间使用的,当时我第一时间就发现一个问题,它用的插件市场是open vsx。

2025-04-03 21:24:12 87

原创 Trae编辑器插件目录自定义,释放c盘空间

直接操作该目录可能导致插件异常,建议通过trae的扩展界面管理插件.打开trae,找到扩展列表,看看是否正常显示你之前安装的所有插件,同时安装一个新的插件,看看是否可以正常的安装即可。这样呢,就节省了一定的C盘空间了,我这里是以trae的海外版为例,如果你用的是国内版,那么把。• 不要将插件目录放在trae安装目录下,否则更新软件时可能导致插件丢失;就可以啦,当然,如果你的C盘空间足够大,也就不比理会本篇文章啦。图片中打马赛克的是我的用户名,大家用自己的用户名替换就可以了。若已安装插件,一定要先将原。

2025-04-03 21:22:21 380

原创 别再用默认主题了!Trae官方插件市场开放,可以实现主题自由了

在trae编辑器的右上角点击人像图标->主题->更多主题,打开后有一些trae内置的主题,选择以后就会更换为该主题,如果内置的都不符合我们的想法,还可以点击。trae会自动搜索插件市场的所有主题类型的插件,选择一个主题插件,单击以后会自动安装这个插件。

2025-04-03 21:21:13 338

原创 无需qt-creator,使用Trae从0到1生成qt的开发、构建、调试环境

没有使用qt creator,也没有在trae中安装qt相关的插件,我也没有写一行代码,纯粹聊天使用trae开发出了一个qt程序

2025-03-20 22:09:51 1368

原创 Trae插件革命:用VSPlugin Helper实现VSCode市场插件全自动安装

之前有读者留言说trae都没有c++的插件用,确实是这样,trae的插件源用的是open vsx,而c/c++插件是vscode官方插件市场的,如果想直接在trae中安装c/c++插件是不行的,只能先从vscode官方插件市场把vsix后缀文件先下载下来,再手动安装,这一点trae的官方文档里面也有说明,但每次都手动安装还是比较麻烦的,于是我就想到了,我为啥不自己写一个trae的插件,功能就是能自动从vscode官方市场下载插件并安装呢。说干就干,我花2个小时用trae写了一个名为。

2025-03-14 17:54:22 1505

原创 Trae 用户交流:分享几个让 AI 写代码既顺手也顺眼的小技巧

我在使用的过程中,更多的难点来自于编译报错的修改,并不是说AI生成的代码就一定是可以直接编译通过的,特别是项目(c++项目)源文件比较多的情况下,也会出现很多编译报错,虽说我们可以在build模式下把编译报错直接截图丢给AI,大多数情况下它可以直接帮我们修复常见的编译报错,但是还有部分情况它无法解决,我就遇到过,AI给的解决办法跟报错完全不相干的,此时就需要我们程序员自己去读懂代码,搞清楚可能得错误具体在哪个位置,再丢给AI,然后它一下子又理解了。

2025-03-11 09:39:15 641

原创 【STL源码拆解】基于源码分析forward_lsit容器实现(详细!)

本篇文章介绍一下c++11中新增的顺序容器forward_list,基于stl的源码分析一下该容器的整体实现及数据结构。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文大纲,如下:1. forward_list是什么forward_list是c++11为STL新增加的一种顺序容器,使用的时候包含头文件forward_list即可,真实的类声明位于头文件bits/forward_list.h中,类forward_list是一个类模板,基于单链表结构

2021-08-09 09:45:42 431 4

原创 c++11增加的变参数模板,今天总算整明白了

本篇文章介绍一下c++11中增加的变参数模板template<typename... _Args>到底是咋回事,以及它的具体用法。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文大纲,如下:在之前写vector和deque容器源码剖析的过程中,经常发现这样的代码,如下:template<typename... _Args>void emplace_front(_Args&&... __args);可以

2021-07-29 09:43:47 1555 5

原创 【deque容器系列二】基于STL源码分析deque容器插入和删除时内存都是怎么变动的

上篇文章我们介绍了deque容器整体结构和构造实现,链接如下:基于STL源码分析deque容器整体实现及内存结构本篇文章接上篇,继续基于gcc中stl的源码剖析deque容器插入、删除、取值的实现原理,以提问者的角度去深入分析这些操作过程中发生了什么,并对deque容器适合使用的场景和使用时的注意事项进行说明。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文大纲,如下:0. deque容器迭代器说明在正式开始讲述插入、删除等操作的实现前,我们

2021-07-16 12:32:10 479 24

原创 【deque容器系列一】基于STL源码分析deque容器整体实现及内存结构

本篇文章基于gcc中stl的源码介绍deque容器的整体实现和它的内存结构。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。首先呢,还是看一下思维导图,如下:1. deque容器整体源码实现介绍deque容器是stl中顺序容器的一种,之前已经介绍过array和vector了,今天介绍deque容器,deque的本质是一个类模板,它的声明位于头文件bits/stl_deque.h,实现位于bits/deque.tcc,接下来我们就围绕这两个文件来介绍一下deque容器的实现

2021-07-14 11:37:00 383 8

原创 从c++标准库指针萃取器谈一下traits技法

本篇文章基于gcc中标准库源码剖析一下标准库中的模板类pointer_traits,并且以此为例理解一下traits技法。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。还是先看一下思维导图,如下:1. 指针萃取器pointer_traits说明首先说明一下哈,官方并没有指针萃取器这个名称,其实pointer_traits是类模板,它是c++11以后引入的,可以通过传入的重绑定模板类型得到相应的指针类型,比较官方的描述是:pointer_traits 类模板提供标准化方法

2021-07-12 11:07:16 560 28

原创 写gdb的用法居然入选了运维领域内容榜

这咋就编程运维领域了呢,貌似运维不需要使用gdb吧,不管咋说,占个楼,纪念一下,哈哈。

2021-07-07 10:09:46 207 6

原创 【工欲善其事,必先利其器】之gdb五大高级用法

本篇文章讲解gdb的一些高级用法,在我们的开发生涯中,调试是很重要的技能,而在linux下开发,最常用的调试工具就是gdb了,所以这里介绍几种gdb比较高级的用法,助力我们的调试技能。还是先看下思维导图:1. gdb怎么调试多线程gdb调试多线程时,默认情况下是所有线程同时都在执行,但是假设我们想只有一个线程继续执行,其他线程都暂停呢?下面就来看一看该怎么实现这个功能。有这么一段多线程代码,如下://test.cpp#include <stdio.h>#include <p

2021-07-06 10:25:48 1059 15

原创 【工欲善其事,必先利其器】之怎么查看c++代码生成的汇编代码

本篇文章讲解怎么得到c++代码对应的汇编代码,想要真正的理解一段代码到底是怎么执行的,还是要从汇编的层面去看,那怎么得到一段c++代码所对应的汇编代码呢,下面为你介绍三种方式。1. gcc编译生成XXX.s文件一般来讲,给你一个cpp文件,比如test.cpp,然后我们编译都是直接g++ test.cpp这样简单直接的方式,但其实它中间有很多个过程的,包含预处理、编译、链接等过程,而这其中的编译这个过程其实就是生成了汇编文件。比如对于一个cpp文件,我们执行下列命令:g++ -E test.cpp

2021-07-01 09:32:38 401 14

原创 上次说了静态数组可变长,今天知道原理了

之前发了一篇文章,讲c99变长数组的,链接如下:多年老c++程序员在静态数组这里翻船了发出去以后有了挺多的反馈,因为这并不是一个很难的知识点,所以如果接触过的自然而然是知道,但还真有挺多人表示不知道和不相信这个事,同时我上次也只是简单的说了一下这个事,没有去讲解这个变长静态数组的实现原理,今天补上。先看一下思维导图:1. 变长数组是长度一直可以变的吗变长数组,那么是长度一直可以变的吗,到底什么时候这个长度会确定下来呢?我们先看一下代码,如下:#include <iostream>

2021-06-29 09:17:00 647 6

原创 c++中引用面试点7连问以及引用真的不分配内存吗

本篇文章从面试官的口吻连问7个引用有关的问题,并且从汇编的层面上对引用进行深入分析,让你充分理解引用的概念和原理。首先还是看一下思维导图:1. 引用的背景和概念说到引用,首先要说一下’&'标识符,其实c语言中这个符号只是用来取地址的,并没有引用的概念,直到c++对这个标识符的作用进行了扩充,才有了引用这个概念。所谓引用,其实就是给变量取了一个别名,一个简单的例子如下:int main(){ int a = 2; int &b = a; return 0;}对于这段c

2021-06-28 09:25:36 1444 19

原创 c++类和继承面试点25连问

本篇文章连问面试时经常会遇到的类和继承相关25个问题,看看你能回答出几道题呀。还是先看一下思维导图,如下:1. c++的三大特性是什么c++的三大特性,说白了其实就是面向对象的三大特性,是指:封装、继承、多态,简单说明如下:封装是一种技术,它使类的定义和实现分离,也就是隐藏了实现细节,只留下接口给他人调用,另外封装还有一层意义是它把某种事物具现出属性和方法并形成了一个整体,就像一个人,同时具有身高和身体等等这些,才是完整的人,如果不封装,那这个人就相当于四分五裂了;继承,所谓继承,其实就是真实

2021-06-18 19:43:10 304 5

原创 c++头脑风暴-多态、虚继承、多重继承内存布局

本篇文章深入分析多态、虚继承、多重继承的内存布局以及实现原理。首先还是看一下思维导图:下面根据这个大纲一步一步的进行深入解析。一、没有虚函数时内存布局是怎样的1. 没有虚函数时类的内存布局一个类没有虚函数的时候,其实就是结构体,它的内存布局就是按照成员变量的顺序来的。看如下代码:#include <iostream>using namespace std;class CPeople{ double height; int age; char sex;public:

2021-06-17 09:13:55 515

原创 多年老c++程序员在静态数组这里翻船了

事情的起因事情是这样子滴,有一次我在代码评审的时候,发现有同事想使用运行时才能够获取到的值,去改变一个静态数组的元素个数,我当时就很诧异,因为我心里知道这样是不可行的,静态数组的元素个数在编译时就需要是固定不变的,一般只能是常量或者宏定义,否则编译就不能通过。但是当时我提出来以后,把原因说了,包括写出这个代码的人和另外一位同事都没理解,弄得我有点怀疑自己了,难道是我搞错了?我左思右想,最后我写了下面的代码来证实一下:#include <iostream>using namespace

2021-06-08 09:34:02 428 4

原创 三张图带你弄懂stl内存分配器,再也不怕面试官问了

本篇文章基于源码来剖析标准库中内存分配器的实现原理及使用。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。还是来先通过思维导图来看一下本篇文章会从哪些方面来讲解stl中内存分配器和萃取器,如下:其实stl中有关内存申请的操作是包含两个内容的:内存分配器、内存萃取器。一、vector容器中对内存分配器的使用前面的文章中说了,vector容器本质上是个动态数组,它其实就是使用标准库的内存分配器实现的,还是先看一下代码,如下:template<typename _Tp

2021-06-04 19:29:18 716

原创 c++中typename、typedef以及using关键字用法

在c++的标准库中,因为类继承关系比较复杂和模板使用比较多的原因,源代码中充斥着typename、typedef和using这三个关键字,所以在继续剖析标准库源码之前,今天就来介绍一下这三个关键字的作用。一、typename关键字typename的第一个作用是用作模板里面,来声明某种类型,比如这样的:template<typename _Tp, typename _Alloc> struct _Vector_base;最开始的时候声明模板形参,也会使用class,但我们都知道c

2021-06-03 09:18:23 2232 4

原创 超详细STL之基于源码剖析vector实现原理及注意事项

本篇文章基于源码来剖析标准模板库中vector容器的实现原理及一些特殊注意事项。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。多年以前面试的时候第一次被问到stl中vector的底层实现,那个时候的我真的很low,根本回答不上来,后来面试回来,在网络上搜索了一些vector底层实现,知道了它的底层是动态数组,但光知道动态数组是不够的,进一步的,动态数组写满了怎么办,它的实现用了c++的什么技术,一些特殊场景下怎么使用vector更有效率等等,这些极少有人讲清楚,今天我基于gc

2021-06-02 09:21:45 453

原创 写技术博客的一些想法,你我共勉

到今天为止,公众号也有了51篇原创文章了,其实里面2021年发布的只有18篇文章,其他的都是2019年发布的,尽管目前来讲,成绩还不好,但关于写技术文章,我也算有了自己的一些经验,今天就想从写作平台的选择、写作方式、写文章目的、技术文章内容选择、写文章应有的品德这五个方面说一下自己的一些经历和想法,大家共勉。一、写作平台的选择关于写作平台,我就我所使用过的所有平台都说一下我的看法:微信公众平台,也就是公众号,公众平台是一种私域流量,只有别人关注你以后才能看到你写的文章,如果没有人关注你,那你就是完全

2021-05-29 17:27:56 148

原创 记录一下博客终于升为5级了

今天终于升到5级了,虽说离大佬们差的远,但是也是一个进步,记录一下,看看我多久能升到6级,哈哈!

2021-05-28 09:34:12 108

原创 题解5道c++面试题第一期(含解题思路、答案解析和实现代码)

本篇文章送上5道c/c++面试题目,并附上答案、解题思路以及扩展知识。1. 求下面函数的返回值#include <stdio.h>int func(int x){ int iCnt = 0; while(x) { iCnt++; x = x&(x-1); } return iCnt;}int main(){ printf("cnt = %d\n", func(9999)); return 0;}这题问的是函数的返回值,而通过代码我们能看到返回

2021-05-28 09:30:54 523 2

原创 作为一个有点小洁癖的程序员,不允许给我扣上抄袭的帽子

我之前写的一篇文章:libevent简单服务端和客户端实现实际上在知乎上2019年就发表过,链接如下:libevent简单服务端和客户端实现今天突然就收到一个评论:评论里面链接如下:评论里面的链接这个我就不能忍了,然后赶紧看了一下,原来虚惊一场,我是2019年9月4日在知乎发表的,评论里面这个链接是2019年9月30日发表的,而且人家注明了是转载于我的公众号,如下:The article is published in cpp gas station (ID:xy13640954449)

2021-05-26 17:35:28 119 2

原创 手写strcpy和memcpy代码实现

本篇文章聊一下strcpy和memcpy的代码实现,这两个也是c和c++面试中常考的问题点。1. 手写strcpy首先看一下,一份标准的strcpy的实现如下:char *strcpy(char* strDest, const char* strSrc){ assert( (strDest != NULL) && (strSrc != NULL)); char *address = strDest; while((*strDest++ = *strSrc++) != '\0')

2021-05-26 09:28:53 508

原创 c++编码规范

我的c++编码规范:属性 规则 例子 全局常量类应用(枚举、宏) 全大写英文单词组合用下划线分隔 DATA_SIZE 函数命名 第一个单词首字母小写,后面全部首字母大写(或者全部首字母大写,看整体吧) initData()/InitData() 类名 C开头,后面全部首字母大写 CTestObject 接口名 I开头,也是全部首字母大写 ITestObject 类的成员变量 m_开头,首字母大写英文单词组合 m_

2021-05-21 12:35:49 162

原创 超详细STL之array容器使用及实现原理解析

说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。本篇文章讲述STL中array的使用及原理。导读array其实是一个固定大小的数组,元素类型及大小在声明的时候指定,原型如下:template<typename _Tp, std::size_t _Nm> struct array { ... };有些书上说array也是一个class,但是我这个版本看到的是struct,不过没有关系,除了一些细微的方面,struct和class.

2021-05-21 09:25:45 1345

原创 c++中lambda表达式用法

说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。本篇文章讲解c++11中lambda表达式用法。初次接触lambda这个关键字,记得还是在python里面,但其实,早在2011年c++11推出来的时候我们c++就有了这个关键字啦。lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。所谓函数对象,其实就是对operator()进行重载进而产生的一种行为,比如,我们可以在类中,重载函数调用.

2021-05-20 10:02:35 1902 1

原创 最全面的c++中类的构造函数高级使用方法及禁忌

说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。本篇文章讲解c++中,构造函数的高级用法以及特殊使用情况。1. 拷贝构造和移动构造区别对于拷贝构造和移动构造,还是看一下这段代码:#include <iostream>#include <string.h>using namespace std;class CPtr{ private: char *m_pData; int m_iSize; public: //without .

2021-05-14 09:19:58 781

原创 c++类的构造函数不显式声明会自动生成吗

说明一下,我用的是g++7.1.0编译器,标准库源代码也是这个版本的。本篇文章讲解c++11中,类的构造函数种类,以及不显式声明的情况下是否会自动生成。1. 类的构造函数类别在我刚接触c++的时候,我一直知道类可以有四种形式的构造函数,即无参构造函数、有参构造函数、拷贝构造函数、赋值运算符构造函数,最近看标准IO源代码,发现又多了一种,那就是移动构造函数,这是c++11中补充进来的,所以现在c++可以拥有四种形式的构造函数,即无参构造函数、有参构造函数、拷贝构造函数、赋值构造函数、移动构造函数、移.

2021-05-13 09:14:41 858

原创 c语言中strstr函数的一个注意点

今天说一个之前工作上遇到过的一个问题,也是之前没注意过的一个点。先看一段代码:#include <stdio.h>#include <string.h>int main(){ char sz1[16] = {0}; char sz2[10] = {0}; char sz3[3] = {0}; strncpy(sz1, "bbAAcc", sizeof(sz1)-1); strcpy(sz3, "AA"); if ( strstr(sz1, sz2) != NU

2021-05-11 09:26:10 307

整理的shell命令使用方法.doc

55中linux下命令简单介绍,26中linux下shell使用技巧

2021-05-21

django和xadmin打造后台管理系统

这是一份django和xadmin打造后台管理系统的案例

2021-04-30

私人珍藏82道linux下c-c++语法知识点归纳和总结.docx

多次面试c++以后总结出来的知识点

2021-04-30

空空如也

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

TA关注的人

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