##内联成员函数
- inline + 成员函数
- 整个函数体出现在类定义内部123456class B{inline void func1();void func2(){}};
勿在浮沙筑高台
##内联成员函数
|
|
不可通过常量指针修改其所指向的内容
|
|
|
|
功能 | 示例 | 位运算 |
---|---|---|
去掉最后一位 | (101101->10110) | x >> 1 |
在最后加一个 0 | (101101->1011010) | x << 1 |
在最后加一个 1 | (101101->1011011) | x << 1+1 |
把最后一位变成 1 | (101100->101101) | x ¦ 1 |
把最后一位变成 0 | (101101->101100) | x ¦ 1-1 |
最后一位取反 | (101101->101100) | x ^ 1 |
把右数第 k 位变成 1 | (101001->101101,k=3) | x ¦ (1 << (k-1)) |
把右数第 k 位变成 0 | (101101->101001,k=3) | x & ! (1 <<(k-1)) |
右数第 k 位取反 | (101001->101101,k=3) | x ^ (1 << (k-1)) |
取末三位 | (1101101->101) | x & 7 |
取末 k 位 | (1101101->1101,k=5) | x & (1 << k-1) |
取右数第 k 位 | (1101101->1,k=4) | x >> (k-1) & 1 |
把末 k 位变成 1 | (101001->101111,k=4) | x ¦ (1 << k-1) |
末 k 位取反 | (101001->100110,k=4) | x ^ (1 << k-1) |
把右边连续的 1 变成 0 | (100101111->100100000) | x & (x+1) |
把右起第一个 0 变成 1 | (100101111->100111111) | x ¦ (x+1) |
把右边连续的 0 变成 1 | (11011000->11011111) | x ¦ (x-1) |
取右边连续的 1 | (100101111->1111) | (x ^ (x+1)) >> 1 |
去掉右起第一个 1 的左边 | (100101000->1000) | x & (x ^ (x-1)) |
将变量某些位取反且同时保持其他位不变
example: 将int类型变量n的低8位取反, 而其余位不变, n = n ^ 0xff(1111 1111)
|
|
不使用中间变量交换a, b的值
|
|
今天是2017年2月9日, 距离开学还有8天, 距离蓝桥杯还有58天。
这个假期到目前为止, 做了如下事情:
但是在这个过程中觉得自己还有有很多的不足,
学而不思则罔,思而不学则殆 ——《论语·为政》
所以需要在剩下的一个周时间里, 整理刷题的解题报告。
在刷PAT乙级和蓝桥的时候自己总结了如下知识点, 对自己提高是很有帮助的
剩下几天的安排:
看做过的题, 学新东西, 写博客, 看蓝桥视频, 看coursera的北大C++视频
总之, 还是要打好基础, 一步一步来,假期七天肯定不够了, 开学慢慢来吧。
水题做多会变傻的。 —— 静静学姐
最近做水题上瘾, 这道题无论如何还是要用邻接表做一遍,先用的dijkstra的邻接矩阵水一下,挖个坑: 以后要用邻接表做一遍!!!
我的代码:github
类型名 (* 指针变量名)(参数类型1, 参数类型2, ……)
|
|
|
|
参数:
|
|
argc: 代表启动程序时, 命令行参数的个数, C/C++规定, 可执行程序本身的文件名, 也算作一个命令行参数, 因此, argc的值至少是1
argv: 指针数组, 其中每个元素都是一个char* 类型的指针, 每个指针指向一个字符串, 若命令行参数内部用空格, 用双引号括起来即可, 如下实例中的”hello world”
如果输入的字符中带有双引号的话: 123”456 就是 123”””456 “A””B” 就是 “””A””””””B””” , 带有百分号的话:%号转义就是两个百分比:%%
我的代码:github
知识点:
我的代码: github
题目描述
POJ2551 Dungeon Master
感受:
- 比图上的BFS多了一个维度, 多考虑一下就可以了, 就是代码量有点宏大
- ACM是多组输入输出, 一定记得清空 isVisit 之类具有标记和存储功能的数组!!!!!
我的代码: github
比较难以理解的部分
|
|