C++
C++博客
高二的笔记
这个人很懒,什么都没有写。
展开
-
关于继承和多态
【代码】关于继承和多态。原创 2024-02-06 16:11:22 · 428 阅读 · 0 评论 -
关于C++的一些小知识点
【代码】关于C++的一些小知识点。原创 2023-12-14 16:10:11 · 408 阅读 · 0 评论 -
函数参数传双指针
如果我们想在一个函数中new一个对象,给外面的指针,可以定义形如。原创 2023-09-01 19:28:53 · 118 阅读 · 0 评论 -
std::cout输出double精度问题
【代码】std::cout输出double精度问题。原创 2023-08-31 18:49:54 · 667 阅读 · 0 评论 -
C++中的异常
异常会向外传播,直到找到第一个匹配的catch处理(catch实际上是匹配过程,catch按顺序执行,他会执行第一个能匹配到的捕获)若当前匹配的catch处理不了,可以修改/携带信息,可以继续向上抛出。当我们想自定义异常输出信息时,需要继承自exception类。用noexcept修饰后,不能再抛出异常了,否则程序会崩溃。抛出异常后,throw后面的语句不会被执行。一种使用规范,异常通常由调用者捕获处理。原创 2023-08-23 06:47:55 · 166 阅读 · 0 评论 -
容器中的emplace
【代码】emplace。原创 2023-08-21 20:29:18 · 81 阅读 · 0 评论 -
C++中function,bind,lambda
作为find_if的第三个参数,bind1st的作用,首先,将70绑定到二元函数对象(greater)的第一个参数上,其次,将二元函数对象(greater)转为一元函数对象(因为70已知了),传入到find_if的第三个参数中。这里,我们常规的做法通常是:通过一个函数获取集合的最大,最小值,然后保存住,最后在需要的时候访问这两个值,然后打印它们。sort最后一个参数传入的greater或less都被称为函数对象,顾名思义,表现像函数的对象,因为他们的调用都是在后面加上"()"。似乎也没有什么神奇的地方。原创 2023-08-20 07:37:31 · 245 阅读 · 0 评论 -
关于模板更多的内容...
关于特化和部分特化(偏特化),其实就是看是否还有可推导的内容,特化实际上是为了应对特殊的场景。按照我们开始说的"&&在模板中并不是右值引用的意思,只是说明要传一个引用"n是左值,所以要对应左值引用,当T被推导为int&后,形参就变成了。,所以三个&,引用折叠,最后函数形参就变为了左值引用。在模板中并不是右值引用的意思,只是说明要传一个引用。推导为int&类型,而int& b必须得有初始化值。123是右值,T被推导为int后,形参就变成了。比如下面这个模板比较函数。(部分特化也叫偏特化)这样,就不会报错了。原创 2023-08-19 11:56:15 · 197 阅读 · 0 评论 -
CMake中的find_package(xxx REQUIRED)在windows平台怎么解
下载的源代码不能一次性编过是最让人头疼的问题,这种开源代码通常都是迭代了很多版本,各种配置信息如果不在文档中说明,全靠自己去摸索确实会让人头大,所以,我尽可能的把我遇到的问题分享出来,供大家参考,而不要在这种环境问题上就栽了大跟头。或者如果你觉得写这样的文件太麻烦,不如生成工程后再手动配置三方库头文件和库文件,那你可以先创建一个空文件,把cmake骗过去,之后再自己手动配置。或者如文章中提到的,如果你觉得写这样的文件太麻烦,还不如手动配,那就可以先放置一个空文件,把CMake骗过去,先保证工程能够生成。原创 2023-06-18 10:59:49 · 1293 阅读 · 0 评论 -
智能指针练习
【代码】智能指针练习。原创 2023-05-14 09:11:43 · 84 阅读 · 1 评论 -
C++中的异常
关于异常的编码规范,一般关于异常的处理都放在外面做,而函数自身,只需要进行检查,若不符合规范抛出异常让外层处理。关注账号,你还会收到关于C++的更多知识哦!如果我们想在抛出异常时,携带一些信息,帮助开发人员更好的调用调试,可以继承自。关键字,这样编译器可能会对这个函数做一些不会抛出异常的优化。以上,便是对C++中异常的一些基础使用,希望对你有用。可以抛出任意异常,只要catch进行相应的捕获即可。发现处理不了异常,需要继续向上传递时,使用。异常会向外传播,直到有相应的。包围可能发生异常的语句,原创 2023-04-09 21:56:42 · 309 阅读 · 0 评论 -
C++中第三方库的一般使用方式(libxl库为例)
第三方库的使用libxl原创 2022-10-19 22:11:44 · 6424 阅读 · 6 评论 -
一文搞懂可重入和线程安全
任何线程都可以调用可重入类实例中的成员函数,只要没有其他线程可以同时调用该类的同一个实例上的成员函数。但却不是线程安全的,如果多个线程同时试图修改成员变量n,结果是未定义的,因为++或–操作并不是原子的。一个线程安全的函数可以被多个线程同时调用,即使调用使用共享数据,因为对共享数据的所有引用都是序列化的(串行的)如果线程A和线程B同时加载变量的旧值,增加它们的寄存器,并存储它,它们最终会相互覆盖,变量只增加一次!因此,线程安全的函数总是可重入的,但可重入的函数并不总是线程安全的。原创 2022-09-04 21:41:22 · 2324 阅读 · 4 评论 -
对象的优化
class Test {public: Test(int a = 10) : ma(a) { cout << this << endl; cout << "constructor" << endl; //cout << __FUNCTION__ << endl; } ~Test() { cout << this << endl; cout << "destructor"原创 2022-05-21 11:46:47 · 145 阅读 · 0 评论 -
C++中的左值、右值、左值引用、右值引用
来看一个示例:#define func(x) __func(x, "func(" #x ")")void __func(int &x, const char *str) { cout << str << " is left value" << endl; return;}void __func(int &&x, const char *str) { cout << str << " is right val原创 2022-05-20 18:05:11 · 419 阅读 · 1 评论 -
C++语言中的一些小点
NULL和nullptr的区别#include <iostream>using namespace std;void func(int *x) { cout << __PRETTY_FUNCTION__ << endl; cout << x << endl;}void func(int x) { cout << __PRETTY_FUNCTION__ << endl; cout << x &原创 2022-05-20 15:52:29 · 166 阅读 · 0 评论