码迷,mamicode.com
首页 > 编程语言 > 详细

总结一些好用的C++小技巧

时间:2019-09-21 20:52:43      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:col   维数   --   没有   c++11   输出   方便   数组   最大的   

持续更新中.....

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++小技巧

标签:col   维数   --   没有   c++11   输出   方便   数组   最大的   

原文地址:https://www.cnblogs.com/lightmain-blog/p/11564406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!