C++学习
文章平均质量分 65
golemon.
这个作者很懒,什么都没留下…
展开
-
c++string简单使用
*如果找到,返回找到的首字符下标,否则返回string::npos。位开始,找str_t字符串。的字符串替换为str_t。前插入字符串str_t。原创 2024-04-19 00:07:42 · 867 阅读 · 0 评论 -
c++模板编程分文件编程问题
hpp。原创 2024-01-22 15:20:36 · 401 阅读 · 0 评论 -
使用cmake进行完成开发实践
用于指定项目的头文件搜索路径,以便编译器能够找到头文件。在这个实践中,它告诉CMake在搜索头文件时包括当前源代码目录和。添加到项目的包含目录下,编译器就无法找到自定义的头文件。目录下创建头文件和源文件,写入要求逻辑。根据这个UML图进行cmake的实践。的内容先创建出cmake项目。根据UML图,首先要完成。之后在项目目录中创建。之后按照上面步骤实现。即可产生可执行文件。原创 2024-01-21 12:00:48 · 523 阅读 · 0 评论 -
使用vscode在wsl2中配置clangd环境
在vscode中安装这三个插件(clangd需要科学上网或者从VSIX安装)注意在创建CMakeLists.txt这一步选择跳过,直接输入。之后,cmake就帮我们创建好项目了。旁边的debug按钮进行debug。之后创建一个空目录并进去。设置clangd编译目录。,进行可执行文件的产生。到此,环境已经配置好了。打开设置,在设置中输入。点击添加项,并输入参数。,可以看见输入内容。原创 2024-01-21 10:50:24 · 1382 阅读 · 0 评论 -
cmake构建和简单实操
内部构建会在 同级目录下产生一大堆中间文件,这些中间文件并不是我们最终所需要的,和工程源文件放在一起会显得杂乱无章。有两种构建方式,分别为内部构建和外部构建。源文件和头文件分别在不同的目录下进行实操。将编译输出文件与源文件放到不同目录中。分别在头文件和源文件内写入内容。内部构建 (不建议使用)外部构建(推荐使用)原创 2024-01-20 16:19:48 · 800 阅读 · 0 评论 -
cmake介绍
基本语法格式:指令(参数1 参数2 …)参数用括弧括起来参数之间使用空格或分号分开指令是大小写无关的,参数和变量是大小写相关的变量使用${}方式取值,但是在IF控制语句中直接使用变量名。原创 2024-01-20 15:46:10 · 1049 阅读 · 0 评论 -
C++ vscode使用代码块
就是代码块的作用文件类型,这里我们可以指定文件类型,多种类型之间用逗号隔开,比如如果指定作用范围类型"css, javascript" 那么这个代码块只能在这两种类型的文件中起作用。如果值为空,或者是不写这个属性,默认所有类型文件都支持该代码块。**代码块的主体内容。仔细观察我们可以看出,代码块主体就是字符串的数组。写代码的时候我们只需敲出这个字符串就会触发我们的代码块。**代码块的简单介绍,我们可以介绍一下这段代码块是干什么用的。点击要进行配置代码块的编程语言。点击代码块或者按F1进入代码块。原创 2023-11-08 12:22:36 · 129 阅读 · 0 评论 -
C++ RTTI简介
RTTI(Runtime Type Identification)是“运行时类型识别”的意思。C++是一门静态类型语言,其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用本身的类型,可能与它实际代表的类型并不一致,有时我们需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就有了运行时类型识别需求。和Java相比,C++要想获得运行时类型信息,只能通过RTTI机制,并且C++最终生成的代码是直接与机器相关的。原创 2023-11-08 12:21:34 · 161 阅读 · 0 评论 -
C++ lambda表达式函数递归调用简单写法实现
的作用是为了在 lambda 表达式内部能够递归调用自身。在 C++14 中,lambda 表达式默认是无法直接递归调用的,因为在 lambda 内部无法访问到自身的定义。这种技巧可以绕过对 lambda 表达式递归调用的限制,实现了在 lambda 表达式内部递归调用自身的需求。的方式,实际上是将递归函数对象传递给 lambda 表达式本身,通过递归调用传递进来的函数对象来实现递归。在C++11中,lambda表达式函数递归往往会带上。原创 2023-11-08 12:20:30 · 419 阅读 · 0 评论 -
C++ 运算符重载
() 函数对象(仿函数):定义了调用操作符() 的类对象。因此取名叫函数对象,它是一个类,不是一个函数。全局双目运算符左面是第一个参数,右边是第二个参数。成员双目运算符左边是this,右边是第一个参数。操作者是C ++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将运算符=整体上视为一个函数名。本质是一种函数调用,函数同一的名字叫operator。除了赋值号(=),其他运算符重载都可以被派生类继承。// 先清除,再赋值,防止堆区内存重复释放。C++ 默认赋值函数是值复制,可能导致堆内异常。原创 2023-11-08 12:19:59 · 50 阅读 · 0 评论 -
C++ 智能指针
shared_ptr采用了引用计数器,多个shared_ptr中的T *ptr指向同一个内存区域(同一个对象),并共同维护同一个引用计数器。shared_ptr定义如下,记录同一个实例被引用的次数,当引用次数大于0时可用,等于0时释放内存。make_shared是标准库函数,此函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr。当该unique_ptr对象被销毁时,会在其析构函数中删除关联的原始指针。// 因为p1,p2都要进行析构删除,这样会造成原始指针p0被删除两次。原创 2023-11-08 12:19:28 · 171 阅读 · 0 评论 -
C++ () 和 {} 区别
有std::initializer_list类型的构造函数时,优先调用std::initializer_list类型的构造函数。auto f{1};// f 是 std::initializer_list 类型。C++11以后,对象的初始化可以通过三种方式给出:(), = 和 {}。// 声明一个A数据类型的元素,并调用默认构造函数。使用{}的初始化方式称为适用于任何对象初始化的场景。// 声明一个返回值为A的函数A()如果是{}的空参列表,则调用默认构造函数。int a{4.3};原创 2023-11-08 12:18:56 · 361 阅读 · 0 评论 -
面向对象 04
s原创 2022-09-02 17:34:47 · 111 阅读 · 0 评论 -
面向对象 03
面向对象原创 2022-08-31 22:25:16 · 81 阅读 · 0 评论 -
面向对象 02
C++原创 2022-08-30 23:16:05 · 81 阅读 · 0 评论 -
面向对象 01
c++ 面向对象原创 2022-08-29 17:50:01 · 216 阅读 · 0 评论