找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

C++结构体中的技巧,重载,创建等.

admin 2019-7-6 20:52 125人围观 C++相关

C++结构体小技巧  

1.结构体运算符的重载(用于优先队列排序,矩阵运算等)。

    如下代码:重载了"<"运算符,优先队列默认按照大的在前排列。这个意思就是进来一个结构体tmp,它的a元素大所以它就在前面。
    structnode{int a,b;booloperator < (const node tmp) const{return tmp.a>a; }};
         重载还可用于矩阵运算,如:
      structmatrix{ ll dx[maxn][maxn]; matrix(){     memset(dx,0,sizeof(dx)); } matrix friendoperator * (matrix n1,matrix n2){      matrix n3;for(int i=0;i<=len;i++){for(int j=0;j<=len;j++){for(int k=0;k<=len;k++){           n3.dx[i][j]+=n1.dx[i][k]*n2.dx[k][j];            n3.dx[i][j]%=mod;           }        }      }return n3; }}
           重载了乘法,那么两个结构体的矩阵之间可以直接进行运算,并返回一个同类型的矩阵n3。其实也可以写一个矩阵乘法的函数,也很方便。

      2.结构体的创建:

          小白时期我们创建结构体往往是这样的:
        nodetmp;tmp.a=xx;tmp.b=yy;
            但是其实可以这样:  
          node{xx,yy}; //创建一个Node类型的数据,并按顺序进行赋值。
              更详细一点:
            structnode{int a,b; node(){}; //默认构造函数 node(int a,int b):a(a),b(b){} //对应两个参数的构造函数}
              记得曾经写链表自己一直在用Malloc函数,一堆参数的朝里面放,费时且费心,这个技巧更灵活。

            3.博主在尝试写公众号推送,如果您有什么批评建议的的,欢迎留言。

            作者:苏大强太强了(详细代码见博客)
            链接:https://blog.csdn.net/weixin_41033366/article/details/94716903

            拼一切代价,去奔你的前程。

                                                                                        ——巴尔扎克 




            ----------------------------------------------------------------------------------------------------------------------
            我们尊重原创,也注重分享,文章来源于微信公众号:暴走有点小事件,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
            ----------------------------------------------------------------------------------------------------------------------

            鲜花

            握手

            雷人

            路过

            鸡蛋

            yafeilinux和他的朋友们微信公众号二维码

            微信公众号

            专注于Qt嵌入式Linux开发等。扫一扫立即关注。

            Qt开源社区官方QQ群二维码

            QQ交流群

            欢迎加入QQ群大家庭,一起讨论学习!

            我有话说......