- 博客(11)
- 问答 (1)
- 收藏
- 关注
原创 Linux网络socket之基础模型(c语言)
这是因为在 select 函数调用之后,rset 中的文件描述符集合会被修改,以反映哪些文件描述符实际上发生了事件。select 调用返回后,可以通过 FD_ISSET 宏来检查哪些文件描述符发生了指定的I/O事件。例如,如果 readfds 中的文件描述符准备好读取,则可以使用 FD_ISSET 来检查哪些具体的文件描述符发生了可读事件,并对其进行处理。:等待 I/O 事件发生的时间上限,单位是毫秒。当 epoll_wait 返回时,遍历返回的 epoll_event 结构体数组,处理每个发生的事件。
2024-07-16 08:17:20
619
原创 c++11之可变模板参数
可变模板参数是 C++11 中引入的一项特性,它允许你定义能够接受任意数量和类型的模板参数的模板。这个特性通过使用 … (称为 “参数包”)来实现,可以在模板参数中使用它来表示零个或多个参数。可变模板参数是一个非常强大的特性,它极大地简化了模板编程,使得可以编写更加通用和灵活的代码。它常用于实现元编程技术、泛型编程、以及创建能够接受任意数量和类型参数的函数和类。上面的可变模版参数的定义当中,省略号的作用有两个:例子:展开可变模版参数函数的方法一般有两种:代码标注:一般需要两个函数,一个是展开函数,一
2024-07-13 07:00:00
565
原创 c++11之函数对象封装 function 和 bind
是一个模板类,它可以包装任何可以调用的目标,包括函数指针、函数对象、成员函数指针和 lambda 表达式。它是一个通用的回调机制,允许你以统一的方式处理各种可调用实体。是一个函数模板,它可以用来绑定一个函数或成员函数的参数。函数的第一个参数固定为 10,并且可以通过传递一个参数来调用它。允许你提前绑定一些参数,从而创建一个新的可调用对象。主要是为了提供更加灵活的函数对象封装和绑定机制。对象,该对象可以像普通函数一样被调用。是一个占位符,表示在调用。创建了一个新的函数对象。时传递给它的第一个参数。
2024-07-12 11:12:15
383
原创 c++11之线程(详解)
future使用的时机是当你不需要立刻得到一个结果的时候,你可以开启一个线程帮你去做一项任务,并期待这个任务的返回,但是std::thread并没有提供这样的机制,这就需要用到std::async和std::future(都在头文件中声明)std::async返回一个std::future对象,而不是给你一个确定的值(所以当你不需要立刻使用此值的时候才需要用到这个机制)。但是异步线程是不可以阈值的,如果B是异步线程,那么可能是A->B->C,也可能是A->C->B,这个顺序取决于B的执行时长。
2024-07-12 11:10:35
929
原创 从零开始创建一个基于anaconda的python环境
我们会看到一个(base),后面加一条路径,这个路径是你电脑的用户路径,默认是当前用户,然后base所在位置是指当前环境是base,我们下载好anaconda后,他就会有一个默认的base环境,这个环境你可以直接拿来当python的环境使用,在里面下载所需要的库,不过一般不建议这么做,我们一般会新建一个环境,这个base环境,则拿来管理其他的环境,当作“管理员”,这样加载不同的环境时,就可以使用不同的库,环境与环境之间相互分离,互不干扰。
2023-07-01 12:27:26
2115
1
空空如也
用int(),和input(),为什么会出错?
2021-09-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人