avatar
Articles
140
Tags
0
Categories
18
首页
归档
标签
分类
友链
李瑞琦的博客
首页
归档
标签
分类
友链

李瑞琦的博客

12 万能引用及完美转发
Created2025-06-04|03-C++
万能引用定义万能引用(Universal Reference)是指在模板函数或auto推导中,形如T&&的参数。当编译器通过类型推导确定T时,T&&可以绑定到左值或右值 1.函数模板: 123template <typename T>void func(T&& arg) {} 如果arg是左值,T会被推导为左值引用类型(如int&),因此T&&会折叠成int& &,简化为int& 如果arg是右值,T会被推导为普通类型(如int),因此T&&就是int&& 2.auto: 1auto&& x = some_value; // x...
13 VS如何调用第三方库
Created2025-06-04|03-C++
VS使用第三方库的步骤1.包含目录和附加包含目录 这两个目录是用来放.h文件的 包含目录:#include <xxx.h>,通常是一些系统的标准库代码 1VC++目录 —>包含目录 附加包含目录:#include “xxx.h”,通常是用户自建的一些第三方代码 1配置属性 → C/C++ → 常规 如果项目属性中没有“C/C++”这一项,写个简单的main.cpp编译一下,就会出现。 2.库目录和附加库目录 这2个目录是放.lib文件的目录 库目录:通常是系统的标准库 1工程—属性—配置属性—VC++目录—库目录 附加库目录:通常是第三方库 1位于:工程—属性—配置属性—链接器—常规—附加库目录 3.附加依赖项 具体某个.lib文件 C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.c中。编译之后,*.cpp,*.c,*.c会被打包成一个.lib文件,这样可以保护源代码。所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去。这个就是在附加链接库中设置。 1位于:配置属性 → 连接器 →...
常用的第三方库
Created2025-06-04|03-C++
C++常用第三方库1.日志 plog 2.序列化 cereal RTTR protobuf 3.反射 RTTR 4.数据库ORM ORM意思是:对象关系映射,用于在数据库读写时进行序列化/反序列化 ODB ormpp 5.后端框架 drogon gRPC
01 常用Shell命令
Created2025-06-04|04-Linux01-Linux基本操作
常用Shell命令1、目录信息查看命令ls ls -a 显示目录所有文件及文件夹,包括隐藏文件,比如以.开头的 ls -l 显示详细信息,比如是否可读、可写、可执行 2、目录切换命令cd 3、当前路径显示命令pwd 4、系统信息查看命令uname 5、清理屏幕命令clear 6、显示文件内容命令cat 7、切换用户身份命令sudo 8、文件拷贝命令cp 9、切换用户命令su 10、移动文件命令mv,也可用作重命名 11、创建文件夹命令mkdir 12、创建文件命令touch 13、删除命令rm 14、目录删除命令rmdir 15、显示网络配置信息命令ifconfig 16、重启命令reboot 17、关机命令poweroff 18、系统帮助命令man 19、数据同步写入磁盘命令sync 20、查找文件命令find 21、查找内容命令grep 22、文件夹大小查看命令du 23、磁盘空间检查命令df 24、使用gedit打开某个文件命令gedit 25、当前的系统进程查看命令ps 26、进程实时运行状态查看命令top 27、文件类型查看命令file
02 设置环境变量
Created2025-06-04|04-Linux01-Linux基本操作
设置环境变量1.环境变量的定义环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。 2. export终端命令 export命令可用于显示或设置环境变量。 export命令的效果仅限于当前终端。  export的语法:export [-fnp] [变量名]=[变量设置值] 参数说明: -f:代表[变量名称]中为函数名称。 -n:删除指定的变量;实际未删除,只是不会输出到后续指令的执行环境中。 -p:显示所有的shell赋予子程序的环境变量。 3.Linux设置环境变量的方法3.1终端里直接用export命令export...
06 运算符重载
Created2025-06-04|03-C++
07 模板编程
Created2025-06-04|03-C++
模板 C++的泛型编程利用的主要就是模板 模板主要分为函数模板 和 类模板 一、函数模板函数模板的作用: 建立一个通用的函数,其返回值和形参类型可以不具体确定,用一个虚拟的类型来代表。 1.语法:12345678template<typename T>//声明一个模板,告诉编译器后边的T是一个通用数据类型//函数的声明/定义void swap(T &a,T &b){ T temp = a; a=b; b=temp;} template:关键字,声明创建模板 typename:关键字,可以用class替代,表面其后面的符号是一种数据类型 T:通用的数据类型,也可换成其他的符号 2.注意: 如果把函数的声明和实现分别放到.h和.cpp中,则要写两次template template< >仅对紧跟的一个函数的声明或者定义有效,如果要写多个函数模板,则要写多次template< > 3.使用方法123456//1.自动推导数据类型int...
08 并发编程
Created2025-06-04|03-C++
并发编程 C++11之后提供了丰富的库函数来进行并发编程,现在分模块来依次做笔记 线程创建C++11主要使用std::thread来创建一个新的线程,要创建一个线程,需要传递一个可调用对象(函数、lambda 表达式、函数对象、std::function)作为参数。 123456789// 构造函数thread() noexcept;thread( thread&& other ) noexcept;template< class F, class... Args >explicit thread( F&& f, Args&&... args );thread( const thread& ) = delete; 使用例子: 123456789101112#include <iostream>#include <thread>void thread_function() { std::cout << "Hello from...
09 左右值引用及移动语义
Created2025-06-04|03-C++
左、右值引用左值1.定义 左值是一个在内存中具有持久存储位置的表达式,它可以出现在赋值表达式(=)的左侧或右侧(通常在左边) 左值通常指的是局部变量或者具有持久存储的实体包括: 命名空间作用域的变量:例如全局变量或静态成员变量,它们在程序的整个运行期间都存在。 局部静态变量:在函数内部定义的静态局部变量,它们在第一次使用时初始化,并在程序的其余部分保持其值。 局部非静态变量:在函数内部定义的局部变量(自动变量),它们在进入函数时创建,并在函数退出时销毁。 类成员变量:对象的成员变量,它们与对象一起被创建和销毁。 数组:具有确定大小和存储位置的数组。 具有持久存储位置的变量可以被多次访问和修改,它们可以作为函数参数的左值引用传递,以避免复制并允许修改原始变量 语法: 12int a = 10;int& refToA = a; //...
11 异步编程
Created2025-06-04|03-C++
异步编程 多线程本身就是异步任务,但异步编程不一定是多线程(比如NodeJS依靠单线程+事件队列)。并且 什么是异步编程异步编程是一种范式,允许程序在等待某些操作完成的时候去做别的任务,而不是一直阻塞等待。在耗时操作完成时,可以发出通知。 比如:服务器在读取某个已连接socket时,如果该socket的数据还未准备好,此线程会一直阻塞,直到数据准备好,这会造成CPU资源的浪费,如果使用了异步编程,则此线程就可以在等待数据时先去做别的操作。当然非阻塞I/O也能做到这点,但是非阻塞I/O最后还是会有个同步操作。 std::futurestd::future是一个模板类,用于表示一个异步操作的结果,它提供一种机制,允许用户在未来的某个时刻获取异步操作的结果。该类通常不是主动创建,而是由std::async,...
1…101112…14
avatar
Li Ruiqi
总有低谷
Articles
140
Tags
0
Categories
18
Follow Me
Categories
  • 01-计算机基础八股12
  • 02-开发工具11
    • CMake7
  • 03-C++15
  • 04-Linux39
    • 01-Linux基本操作6
    • 02-系统移植7
    • 03-内核开发19
    • 04-应用开发7
  • 05-MCU28
    • 01-FreeRTOS6
    • 02-STM329
    • 03-MSP4304
    • 04-LVGL4
  • 06-嵌入式硬件5
  • 07-RISC-V3
  • 08-Qt20
  • 09-ROS7
Website Info
Article Count :
140
Unique Visitors :
Page Views :
Last Update :
©2019 - 2025 By Li Ruiqi
Framework Hexo|Theme Butterfly
人因梦想而伟大