随笔分类 - C++初阶
1
C++初阶
摘要:
static_cast 相近类型之间的类型 reinterpret_cast 不相近类型之间的类型 const_cast 去掉对象const属性的转换 dynamic_cast 规范向下转换,转换是安全的 是将一个基类对象指针(或引用)转换到继承类指针,dynamic_cast会根据基类指针是否真正
阅读全文

摘要:
RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内 存、文件句柄、网络连接、互斥量等等)的简单技术。 在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在 对象析构的时候释放资源。借此,我
阅读全文

摘要:
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的 直接或间接的调用者处理这个错误。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕
阅读全文

摘要:
幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,并且保持这次不幸运,那么下一次不可能辛运,所以需要先排序 虽然排序会减少效率,但此次排序正是为了更好的效率,而排序的 假
阅读全文

摘要:
二进制插入__牛客网 (nowcoder.com) 题意为 让m插入到n的第j位到第i位 方法1: class BinInsert { public: int binInsert(int n, int m, int j, int i) { // write code here for(int k=0
阅读全文

摘要:
运用lambda表达式和包装器 150. 逆波兰表达式求值 - 力扣(LeetCode) class Solution { public: int evalRPN(vector<string>& tokens) { stack<long long> s; map<string,function<lo
阅读全文

摘要:
例题1 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在 这40亿个数中。 首先肯定不能用传统的int数据存储 因为内存不够 40亿的整数大概为16G左右 思路1: 因为byte位数据小 1字节就有8个byte 那么40亿byte数据大概只有500mb左右 temp
阅读全文

摘要:
map_set使用说明 map的底层结构大致是一个哈希表,set的底层结构大致是一个红黑树 不代表全部! set #include"map_set.h" //set的底层结构大致是一个红黑树 不代表全部! void test1() { //set的结构天生有排序+去重 set<int> s; s.i
阅读全文

摘要:
list底层实现 list和vector都是容器,只不过他们的存储结构不同,vector实际底层结构是顺序表,支持随机访问。list的底层结构带头双向链表,不支持随机访问。 但list的底层实现不同,因为他是链表的缘故,所它的节点和迭代器必须在外在创建类来嵌套 vector的insert和erase
阅读全文

摘要:
Vector底层实现 vector的三个私有成员 :_start 记录初始位置 , _finish 记录有效字符 , _endofstoage 记录容量大小 vector会存储的类型不同,所以要用模版来定类型 typedef T* iterator; iterator _start; iterato
阅读全文

摘要:
//0xaaaaaaaa = 10101010101010101010101010101010 (偶数位为1,奇数位为0) //0x55555555 = 1010101010101010101010101010101 (偶数位为0,奇数位为1) //0x33333333 = 110011001100
阅读全文

1