![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++共同学习
文章平均质量分 81
与同学们共同学习C/C++开发语言。共勉!!!
xinruoqianqiu
虽然从事工作好多年了,但感觉自己还是个菜鸟,从基础做起,做大做强。
展开
-
C/C++开发---全篇
(1)每个结点至多有m棵子树。【阶数。原创 2024-08-15 08:00:00 · 1194 阅读 · 0 评论 -
C++之using
关键字可以将命名空间中的单个成员或整个命名空间导入到当前作用域,减少代码的冗余。可以用来为类型创建一个新的名字,方便代码维护。为模板定义一个新的别名,使得模板使用更加简洁。在使用模版的过程中,可以使用。非常长的命名空间创建一个别名,方便使用。原创 2024-05-29 08:00:00 · 238 阅读 · 0 评论 -
可变参数函数
C++提供了两种主要的方法:(1)如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型。(2)如果所有的实参类型不完全相同,可以使用可变参数模板。另外,还有一种特殊的省略符形参,可以用它传递可变数量的实参,不过这种一般只用于与C函数交互的接口程序。在C和C++中,函数可以用省略符形参 … 表示不定参数部分,省略符形参只能出现在形参列表的最后一个位置。原创 2024-05-29 08:00:00 · 933 阅读 · 0 评论 -
C++之左值、右值、完美转发
C++中,并不是所有情况下 && 都代表右值引用,在模板和自动类型推导(auto)中,如果是模板参数,想要指定为 T&&,如果是自动类型推导,需要指定为 auto&&,这两种情况下,&& 被称作“未定的引用类型”。因为 T&& 或者 auto&& 这种未定引用类型作为参数时,有可能被推导成右值引用,也有可能被推导为左值引用,在进行类型推导时,右值引用会发生变化,这种变化被称作引用折叠。(1)提供右值推导 T&& 或者 auto&& 得到的是一个右值引用类型,const T&& 表示一个右值引用。原创 2024-05-21 22:08:10 · 978 阅读 · 0 评论 -
C++之std:: function和std::bind
std::function 是 C++ 标准库中的一个类模板,包含在头文件中,它用于封装可以调用的任意可调用对象,包括函数指针、函数对象、Lambda 表达式等。std::function 提供了一种通用的方式来存储、复制和调用可调用对象,使得可以将它们作为参数传递给其他函数、存储在容器中,或者作为返回值返回。它是一种多态函数包装器,可以在运行时决定具体要调用的函数或函数对象。代码:保存普通函数和类成员函数。原创 2024-05-16 08:00:00 · 589 阅读 · 0 评论 -
C++之lambda【匿名函数】
一般情况下,编译器可以自动推断出lambda表达式的返回类型,所以我们可以不指定返回类型。但是如果函数体内有多个return语句时,编译器无法自动推断出返回类型,此时必须指定返回类型。3。原创 2024-05-16 08:00:00 · 491 阅读 · 0 评论 -
C++之operator
operator是C++关键字之一, 称为重载运算符(也称“重载操作符”)。所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。 例如,+号可以对不同类型(int、float 等)的数据进行加法操作;<<既是位移运算符,又可以配合cout向控制台输出数据。C++本身已经对这些运算符进行了重载。C++也允许程序员自己原创 2024-05-02 16:21:43 · 2708 阅读 · 0 评论 -
C++之模板
函数模板可以声明、定义分离;不同的是模板参数声明定义都要给。// 声明// 定义int a = 10;int b = 14;return 0;20204、类模板。原创 2024-05-02 12:53:38 · 787 阅读 · 0 评论 -
C++之const
1、const修饰常量。原创 2024-04-25 21:43:22 · 355 阅读 · 0 评论 -
C++之智能指针
C++ 98引入了第一个智能指针auto_ptr。 C++ boost引入了更加实用的scoped_ptr 、shared_ptr 、weak_ptr。 C++ 11引入了unquie_ptr、shared_ptr、weak_ptrt。需要注意的是,unique_ptr对应的是boost中的scoped_ptr。并且这些智能指针的实现是参照boost中的实现的。 智能指针不是指针,是一个管理指针的类。智能指针是利用了一种叫做RAII技术对普通的指针进行封装,这使原创 2024-04-20 14:26:28 · 720 阅读 · 0 评论 -
C++之强制类型转换
C++中的强制类型转换是一种将一个数据类型转换为另一个数据类型的操作。在C++中,有四种类型的强制类型转换:静态转换、动态转换、常量转换和重新解释转换。(1)静态转换(static_cast):静态转换是最常用的一种类型转换,它可以在不同但相关的类型之间进行转换,如基本数据类型之间的转换、父类指针向子类指针的转换等。但是需要注意的是,静态转换没有运行时类型检查,因此在进行转换时需要确保类型之间是相关的,否则可能会导致错误。原创 2024-04-13 20:22:04 · 1762 阅读 · 0 评论 -
C++之类(持续更新)
(1)声明和定义都放在类体中// .h文件中public:// 共有成员(外部接口,可被使用该类的所有代码所使用的)student();~student();private:// 私有成员(只允许本类中的函数访问,而类外部的任何函数都不允许访问)int age;protected:// 保护成员(与private类似,差别表现在继承与派生时)(2)声明和定义分离// .h文件中public:// 共有成员(外部接口,可被使用该类的所有代码所使用的)student();原创 2024-03-16 21:28:37 · 1049 阅读 · 1 评论 -
C++之线程、线程池
std::thread 在 <thread> 头文件中声明,因此使用 std::thread 时需要包含 <thread> 头文件。原创 2024-03-16 18:11:31 · 425 阅读 · 0 评论 -
C之线程池
一个线程池由三部分组成:(1)管理者线程,用于实时判断线程池中的任务个数、线程个数;并根据两者之间的变化来创建或销毁线程,与任务队列达到平衡。对应于示例中的thread_manage()函数。(2)工作线程,线程池中线程,个数不定,在没有任务时处于等待状态,可以循环的执行任务。对应于示例中的thread_work()函数。(3)任务队列,用于存放没有处理的任务,链表、数组等结构存储。原创 2024-03-15 06:15:00 · 326 阅读 · 0 评论 -
CMake跨平台编译
cmake是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。原创 2024-01-05 22:34:25 · 1231 阅读 · 1 评论