![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
~kiss~
这个作者很懒,什么都没留下…
展开
-
C++的堆heap操作RandomIt
将区间内的元素转化为heap对heap增加一个元素对heap取出下一个元素对heap转化为一个已排序群集测试范围内的元素是否是一个二叉堆(C++11)is_heapC++11新增特性返回有效二叉堆的最末范围。如果都有效,则返回last.也就是说,返回第一个破坏二叉堆结构元素的迭代器。原创 2023-12-24 21:29:14 · 576 阅读 · 0 评论 -
C++的vector<bool>
此外,std::vector的行为也可能与std::vector的行为有些不同,这可能会导致一些奇怪和非预期的结果。对于std::vector,不能获取它们元素的地址,因为bool值并没有真正被存储在内存中。如std::deque,或者专门的位集合如std::bitset或std::vector。不同于其他类型的std::vector,std::vector实际上不存储bool值。std::vector在C++中是一种特殊的容器,它被优化以有效地保存bool值。原创 2023-12-24 17:52:21 · 585 阅读 · 0 评论 -
C++中vector返回值的最高效返回
对于现代C++,返回局部对象并不会引发性能问题,编译器通常会采取RVO/NRVO(返回值优化/命名返回值优化)来避免多余的拷贝,对于C++11及之后的版本,利用移动语义同样可以获得高效的返回。原创 2023-12-24 17:17:34 · 840 阅读 · 0 评论 -
拷贝构造和赋值运算符重载的区别
C++的空类,编译器会加入哪些默认的成员函数?默认构造函数析构函数拷贝构造函数赋值函数(赋值运算符)构造函数可以被重载,可以多个,可以带参数;析构函数只有一个,不能被重载,不带参数#include <iostream>using namespace std;class Demo {private: int _i;public: Demo(int i):_i(i){ cout << "constructor func be called, i = " &原创 2022-02-25 20:44:37 · 521 阅读 · 0 评论 -
heap的运用
#include <iostream>#include <vector>#include <functional>#include <queue>using namespace std;class Demo {public: int data; string name; Demo(int _data, string _name):data(_data),name(_name){}};/*struct Demo_Comp { bo原创 2022-02-25 00:10:21 · 296 阅读 · 0 评论