自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 C++ 变量类型与转换

可以用于基本类型转换、枚举与整数类型间的转换、指针和引用之间的转换(只要它们之间存在继承关系或转换是合法的)、以及类类型之间的显式转换(即使没有继承关系,只要有合适的构造函数或类型转换操作符)。是C++中的一种类型转换运算符,用于执行非多态类型的转换,包括基本数据类型之间的转换、继承体系内的向上转型(把派生类转换为基类)、以及任何没有二义性的转换。会在运行时检查转换的有效性,如果转换不合法(即对象不是目标类型或目标类型的公有派生类),则返回空指针(对于指针类型)或抛出。:由于需要在运行时查询对象类型,

2024-05-24 22:42:28 898

原创 C++时间操作

这个函数会阻塞当前线程直到指定的时间过去,但它仍然可能会受到操作系统调度的影响,实际休眠时间可能会略大于或小于指定时间。提供了更高精度的延时控制,并且不会受到信号的影响而提前结束,还提供了更加面向对象和类型安全的延迟控制方式,并且可以与。是一个POSIX标准的系统调用,用于使当前进程或线程暂停执行指定的纳秒(十亿分之一秒)时间。返回的值是剩余未睡眠的秒数,如果睡眠期间收到了信号并被处理,则可能提前结束睡眠。头文件中定义的一个函数,它允许线程在指定的持续时间内休眠。提供了更高的时间精度。

2024-05-24 22:37:44 350

原创 C++模板元编程编译期推断

模板类,用于获取函数类型(包括普通函数、成员函数等)的相关信息,如返回类型、参数数量和参数类型。可在编译时进行元编程和类型检查。通过特化版本可实现对不同类型的函数类型的处理。

2024-05-10 10:15:11 899

原创 C++线程同步

是 C++ 标准库头文件中定义的一个类,用于线程同步。它提供了一种让线程等待直到特定条件被满足的方法,是实现生产者-消费者模型、线程间同步等复杂同步问题的有效工具。需要与一个互斥锁(如std::mutex)一起使用,以确保线程安全。

2024-05-10 09:50:29 430

原创 C++traits

C++的标准库提供了,它定义了一些编译时基于模板类的接口用于查询、修改类型的特征:输入的时类型,输出与该类型相关的属性通过type_traits技术编译器可以回答一系列问题:它是否为数值类型?是否为函数对象?是不是指针?有没有构造函数?能不能拷贝构造等等type_traits技术还能对类型进行变换,比如给定的类型任意T,能为这个类型添加const修饰符、添加引用或指针等。而这一切都发生在编译时,过程中没有任何运行时开销。

2024-04-12 21:47:28 1367

原创 在线程间共享数据---互斥量

std::mutex是C++标准库中头文件中定义的一个类,它是实现多线程同步的基础工具,主要用于保护共享资源,防止多个线程同时访问同一资源造成的数据竞争(race condition)。std::mutex:通过调用lock()函数来获取互斥锁。如果互斥量此时未被任何线程锁定,则当前线程获得该锁,否则线程将阻塞(即挂起),直到互斥量可用。:通过调用unlock()函数释放互斥锁,使得其他等待该锁的线程有机会获得锁并继续执行。另外,std::mutex还提供了诸如try_lock()

2024-04-12 21:33:07 970

原创 C++IO

当运行这段程序后,将在指定路径下创建或覆盖一个名为 “output.txt” 的文件,并将写入的数据保存到该文件中。例如,你可以读取整数、浮点数、字符串等各种类型的数据,或者一次性读取整个文件内容。提供了处理字节或者字符流进行输入操作的功能,主要用于从各种类型的输入流中读取数据,比如从键盘(通过。例如,你可以写入整数、浮点数、字符串以及任何可以插入到输出流中的数据。的内容,向其中写入新的数据,并展示了如何交替进行读取和写入操作。的功能,既可以读取文件,也可以写入文件,因此它支持对文件进行双向访问。

2024-04-09 21:17:16 676

原创 C++socket相关IO

msghdr用于描述消息头的结构体,recvmsg,sendmsg中用到和:指向一个可选的地址结构(如sockaddr),以及地址结构的长度。在发送或接收带有源或目标地址信息的消息时使用,对于已连接的套接字通常不需要。msg_iov和msg_iovlen:指向一个iovec结构体数组及其长度,用于分散/聚集I/O操作,可以一次性发送或接收多个缓冲区的数据。和:指向附加控制信息(ancillary data)的缓冲区及其长度,可以携带如文件描述符、套接字选项等额外数据。msg_flags。

2024-04-09 20:20:45 1057

原创 C++ 异步库

开发者可以在主线程或其他线程发起一个异步操作,并能够在将来某个时刻查询操作的状态、等待操作完成或者获取操作的结果。(延迟执行,只有当获取未来对象的结果时才执行)以及默认策略(根据实现决定是立即执行还是延迟执行)。函数在一个单独的线程上异步执行,主线程可以继续执行其他任务,然后通过调用。被调用时,若值尚未准备好,则调用线程将阻塞,直到值被设置为止。是要异步调用的函数或者可调用对象,可以带任意数量的参数。的共享版本,允许多个拥有者共享一个异步计算的结果。函数打包,创建一个可以异步执行的任务,并通过。

2024-03-24 22:05:21 693 1

原创 力扣390周赛

模拟。

2024-03-24 22:04:00 150

原创 C++异常处理

在C++中,你可以自定义异常类,通过继承标准库中的类或者其派生类来实现。自定义异常通常用于表示特定的错误或异常情况,这样可以更加精确地捕获和处理问题。// 自定义异常类public:// 构造函数,接收一个错误消息作为参数// 重写虚函数,返回异常信息private:// 存储异常消息if (...) {");在这个例子中,我们创建了一个名为的自定义异常类,它继承自,并覆盖了what()函数以返回自定义的错误消息。在。

2024-03-21 19:44:40 694

原创 C++不定参数模板、折叠表达式和类型推导

函数返回类型后置语法是C++11引入的新特性,它允许我们在函数声明或定义时将返回类型放在函数名后面,通过->符号分隔。是C++11中引入的一个标准库特性,它是一个类型 traits 类,用于推断给定函数对象在给定参数类型下调用后的返回类型。然而,从C++17开始,C++类型推导指的是编译器在编译期间自动确定变量或表达式的类型的能力。用于推导表达式的类型,它可以返回表达式在编译时的静态类型,包括顶层const、引用等修饰符。用于推导传入的可调用对象在给定参数类型时的返回类型,以便创建与任务结果类型相匹配的。

2024-03-18 15:03:17 720 1

原创 C++Lambda表达式

Lambda表达式是C++11及更新版本中引入的一种简洁、直观的创建匿名函数的方法。它允许在代码中快速定义并立即使用一个小型函数对象,而无需为其命名或写一个完整的函数定义。:捕获列表,用于决定lambda函数可以访问哪些外部变量。[][=][&][=,&this][&,this]this[x, &y]xy:参数列表,类似于普通函数的参数列表。mutable:可选关键字,表示即使lambda捕获的是外部变量的引用或副本,也可以在其主体内修改这些捕获的变量。

2024-03-18 15:00:22 443

原创 LinuxC++操作mysql数据库(#include <mysql/mysql.h>的使用)

1.安装mysql c++库2.安装mysql。

2024-03-11 18:37:43 1263

原创 牛客周赛 31

【代码】牛客周赛 31。

2024-03-11 18:29:07 321

原创 牛客周赛28

离散化后用线段树可快速动态查询小于某个数的个数。用一个数组存着高度就可判断当前可否炸到。

2024-03-08 15:16:09 368

原创 力扣382周赛

模拟。

2024-03-08 15:14:58 568

原创 C++网络编程socket

打开一个网络连接family :协议族 , type : 套接字类型 , protocol :协议类型常值套接字描述符sockfdtype : SOCK_STREAM(字节流套接字) SOCK_DGRAM(数据报套接字) SOCK_SEQPACKET(有序分组套接字) SOCK_RAW(原始套接字)protocol : IPPROTO_TCP(TCP传输协议) IPPROTO_UDP(UDP传输协议) IPPROTO_SCTP(SCTP传输协议)

2024-02-14 16:21:50 1369 1

原创 牛客周赛 27

2的幂为1个1加几个0,所以多余的1都要删除,找1的个数即可。从下往上,值为两个子节点的最大值*2+1。统计下2和5的数量,再用滑动窗口统计个数。

2024-02-14 15:38:53 370

原创 网络地址adderss相关操作

Berkeley套接字接口拟定了一个通用套接字地址结构sockaddr,用于表示任意类型的地址,所有的套接字API在传入地址参数时都只需要传入sockaddr类型,以保证接口的通用性。除通用地址结构sockaddr外,还有一系列表示具体的网络地址的结构,这些具体的网络地址结构用于用户赋值,但在使用时,都要转化成sockaddr的形式。

2024-02-02 16:57:39 926 1

原创 牛客周赛 29

2、判断最大数,先不断输出最大数的第二的数直到它俩相等。两个 multiset 维护滑动窗口中的前 K 小值。简单贪心能白天就白天。

2024-02-02 16:08:35 357

原创 力扣381周赛

跑一边floyd然后对每两个点统计。在I的基础上价格哈希表即可。

2024-01-24 18:15:59 824 1

原创 牛客周赛26

dp[i][j]表示到i,j的最小步数,因为要从i,j+1转移过来,因此要反着遍历一遍。操作不会改变奇偶性,所以直接根据奇偶性判断。数学,模数相同的会再同一组里。

2024-01-24 14:33:25 429

原创 力扣122双周赛

实质为求滑动窗口中的前 k 小值,模板。把1数目相同的分组排序在判断。贪心,等于找最小的合并。

2024-01-23 21:43:29 576 1

原创 Educational Codeforces Round 159 (Rated for Div. 2)

贪心,看1和3的位置即可。

2024-01-23 21:29:49 421

原创 Educational Codeforces Round 157 (Rated for Div. 2)

模拟。

2023-12-23 20:15:38 1584 7

原创 Educational Codeforces Round 158 (Rated for Div. 2)

操作不会改变数据的相对性,找出最大和最小让他们接近。前后缀分解左边右边全部击败需要的值。当提升时至少要走提升的次数。

2023-12-23 16:53:07 387

原创 力扣376周赛

map模拟。

2023-12-17 19:05:36 1285 13

原创 Educational Codeforces Round 159 (Rated for Div. 2)

有0肯定可以没0肯定不行。

2023-12-17 17:20:55 503

原创 【C++】std::bind与functional函数对象

std::function 的实例能存储、复制及调用任何可复制构造的可调用目标——函数(通过其指针)、 lambda 表达式、 bind 表达式或其他函数对象,还有指向成员函数指针和指向数据成员指针。存储的可调用对象被称为 std::function 的目标。若 std::function 不含目标,则称它为空。调用空 std::function 的目标导致抛出 std::bad_function_call 异常。若 std::function 非空,则亦销毁其目标。返回指向存储的可调用函数目标的指针。

2023-12-16 19:12:05 1283 5

原创 【C++配置yaml】yaml-cpp使用

》》》

2023-12-16 13:14:29 1234

原创 【C++】模板具体化、实例化、特化整理总结

用处:在多文件编译连接时生成实例。

2023-12-13 22:50:02 2009 12

原创 Codeforces Round 912 (Div. 2)

大等于2依据冒泡排序即可排序,因此判断下1即可。

2023-12-13 22:34:30 528 2

原创 【C++】算法库(复制操作、交换操作、变换操作)

算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。》》》》C++20 在命名空间 std::ranges 中提供大多数算法的受约束版本,在这些算法中,范围既可以由迭代器-哨位对,也可以由单个 range 实参指定,还支持投影和成员指针可调用对象。

2023-12-11 21:36:52 2022 21

原创 Codeforces Round 911 (Div. 2)

有大于3的区间就可以无限取水,答案为2,其他的按照个数。

2023-12-11 20:13:41 460

原创 力扣375周赛

差分数组优化。

2023-12-10 22:42:26 640 7

原创 力扣119双周赛

贪心,一个变了下一个肯定不用变。二进制枚举+Floyd。

2023-12-10 16:59:29 491 2

原创 Codeforces Round 909 (Div. 3)

莫3为0必败,其他必胜。

2023-12-09 20:43:06 535 4

原创 【C++】算法库(批量操作、搜索操作)

算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。》》》》C++20 在命名空间 std::ranges 中提供大多数算法的受约束版本,在这些算法中,范围既可以由迭代器-哨位对,也可以由单个 range 实参指定,还支持投影和成员指针可调用对象。

2023-12-09 15:37:25 1452 18

原创 【C++】智能指针

智能指针可以帮助C++程序员管理动态分配的内存的,它会帮助我们自动释放new出来的内存,从而避免内存泄漏!智能指针不是指针,是一个管理指针的类,用来存储指向动态分配对象的指针,负责自动释放动态分配的对象,防止堆内存泄漏。动态分配的资源,交给一个类对象去管理,当类对象声明周期结束时,自动调用析构函数释放资源C++11后auto_ptr 已经被“抛弃”,改为unique_ptr替代!C++11后不建议使用auto_ptr,因此本位不从unique_ptr开始介绍头文件创建同模板类。

2023-12-08 12:53:53 1458 6

空空如也

空空如也

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

TA关注的人

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