
c++
槲叶落山路丶
这个作者很懒,什么都没留下…
展开
-
文件描述符
文件描述符(File Descriptor)是操作系统为了标识和管理打开的文件或其他I/O资源而提供的一种机制。在Unix和类Unix操作系统中,每个打开的文件、设备、管道、套接字等都会被分配一个唯一的文件描述符,通过这个文件描述符可以对相应的I/O资源进行操作。文件描述符是Unix和类Unix系统中实现文件和I/O操作的基本机制之一。通过文件描述符,操作系统能够管理和控制应用程序对I/O资源的访问,从而实现了文件的读写、进程间通信、网络通信等功能。不同的文件描述符对应于不同的打开文件或I/O通道。原创 2024-02-25 15:56:25 · 393 阅读 · 1 评论 -
什么是右值引用,跟左值又有什么区别
在C++中,左值指的是可以取地址的表达式(即具有标识符的变量、对象或表达式),而右值指的是不可以取地址的表达式(如临时对象或字面量)。右值引用是一种用于引用右值的特殊类型的引用类型。左值可变,右值不能(仅对基础类型适用,用户自定义类型右值引用可以通过成员函数改变);左值:能取地址,或者具名对象,表达式结束后依然存在的持久对象;右值:不能取地址,匿名对象,表达式结束后就不再存在的临时对象;与左值引用相比,右值引用更加灵活,可以更好地支持移动语义、完美转发等特性,能够提高程序的效率和性能。原创 2024-02-24 13:51:54 · 474 阅读 · 0 评论 -
NULL和nullptr的区别
3.重载决议:如果一个函数有重载版本,其中一个接受指针类型的参数,使用 nullptr 可以避免重载决议的歧义问题。因为 nullptr 有独立的类型,可以更容易地选择正确的重载版本。1.类型安全:nullptr 是一个特殊的空指针常量,具有独立的类型 std::nullptr_t。NULL 可能在某些上下文中引起歧义,因为它只是一个宏,其实际值可以是 0 或其它。2.可读性:nullptr 更加明确地表示空指针的概念,使代码更易读,更容易理解。NULL 在某些情况下可能导致重载决议的不确定性。原创 2024-02-24 10:45:43 · 1644 阅读 · 0 评论 -
关于priority_queue队列的一些知识
总的来说,优先队列(Priority Queue)是一种特殊的队列数据结构,它的特点是队列中的元素按照一定的优先级顺序排列,而不是按照它们被插入的顺序排列。:优先队列中的元素按照一定的优先级顺序排列,通常使用堆(Heap)数据结构来实现,堆是一种完全二叉树,满足堆性质,即父节点的值(优先级)不大于(或不小于)其子节点的值。:优先队列的插入和删除操作的时间复杂度通常为 O(log n),其中 n 是优先队列中的元素个数,这是由于堆的性质决定的。中的元素值是不被允许的,因为这会破坏堆的结构,破坏其优先级性质。原创 2024-02-16 09:48:54 · 423 阅读 · 1 评论 -
迭代器失效
迭代器失效是因为对容器进行添加,删除,修改等操作,这会引起容器内元素的位置或者数量发生变化,从而使得之前迭代器所指向的的元素位置改变或者不存在了,导致迭代器失效。迭代器是c++中一种方便对容器进行遍历的工具,在遍历的同时可以对容器进行添加,删除,修改等操作。原创 2023-12-19 11:00:36 · 408 阅读 · 0 评论 -
为什么拷贝构造函数必须使用引用传递,而不能使用值传递?
如果使用的是值传递,那么传递的参数肯定为本类的对象,就又会调用本类的拷贝构造函数,形成无限递归的循环,可能导致程序的奔溃。简单说就是,拷贝构造函数创建对象副本的时需获取源对象的值。原创 2023-12-16 17:21:30 · 163 阅读 · 0 评论