总结一些好用的C++小技巧
Posted lightmain-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结一些好用的C++小技巧相关的知识,希望对你有一定的参考价值。
持续更新中.....
1.输出二维数组
你平常输出二维数组是这样的:
for(int i = 1; i <= n; ++i) for(int j = 1; j <= m; ++j) printf("%d ", a[i][j]); printf("\n");
但是你可以这样输出:
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
printf("%d%c", a[i][j], " \n"[j == m]);
不仅方便了10倍,还很有逼格。
2.O(n)求数列中的最大的前两个
使用swap来做!
for(int i = 1; i <= n; ++i)
int t = a[i];
if(t > big1) swap(big1, t);
if(t > big2) swap(big2, t);
极为方便。
3.for的活用
下面是for的活用的代码。没有用什么C++11的高级语法。
//链式前向星 for(int p = tu[u], v; v = to[p], p; p = nxt[p])
//树上回溯祖先
for(int p = u; p; p = fa[p])
//求highbit
for(ans = 0; x; ans++, x >>= 1);
//求快速幂
for(ans = 1; x; a *= a, x >>= 1)
if(x & 1) ans *= a;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
L I N E
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上是关于总结一些好用的C++小技巧的主要内容,如果未能解决你的问题,请参考以下文章