zoukankan      html  css  js  c++  java
  • 语言特性对于编程的重要性

    我是看了两个matlab的例程 就直接开始用matlab写程序了。
    所以说每个语言都有自己存在的意义和价值。matlab如果仅仅是提供了一些toolbox 是不会让这么多人在用的。

    本来一个程序可以45min解决一组数据,结果我一个地方改动之后 可能4个小时都不一定解得完。
     a. scoredMatchColumn = ScoringMatrix(intseq2,intseq1(outer-1));
     b. for xxx = 1:n
      scoredMatchColumn(:,1) = ScoringMatrix(outer-1,:);
     end;
    a和b从一般意义上 时间复杂度是一样的。 但是实施效果不一样
    再比如能用矩阵乘法计算的,如果你拆开来算,时间效率也是不一样的。

    关键就在于Matlab对于矩阵运算的优良性质,利用好了, 时间会大幅下降
        scoredMatchColumn = zeros(size(ScoringMatrix,2),1);
        scoredMatchColumn(:,1) = ScoringMatrix(outer-1,:);
    a变成这样写之后,速度又回到原来的水平。

    如果用C或者C++的思维去写的话,那就会犯我前面的错误。

    另外想到Java的思想就是纯OO,最近写了一个纯OO的Dijkstra。 虽然说过程很纠结,而且效率应该也不高,但是这种OO的方式可以很轻松的脱离Dijkstra的算法去修改内部的节点的实现。
    而C++的解决方案就是通过模板编程 template的方式来解决。

    类属性
    private: 类中函数 友元函数访问
    protected: 类中函数 子类函数 友元函数
    public: 类中函数 子类函数 友元函数 该类对象

    继承
    private: 父类均为private
    protected: public降为protected 其他不变
    public: 都不变

    纯虚函数  virtual void tmp() = 0;

    友元函数 friend bool operator == (const String&, const Stirng&);
    友元类 friend class tmp;

  • 相关阅读:
    sql server 自动核算
    sql server 连接 EXCEL 直接查询
    Eclipse中html/js/jsp代码的自动联想
    JSP声明和JSP指令
    JSP工作流程
    tomcat安装、配置相关的几个点
    第一篇博客
    Dynamics CRM 2016 的新特性
    Orchard CRM 更新
    在Azure上搭建Orchard CRM入口网站
  • 原文地址:https://www.cnblogs.com/shihao/p/2325553.html
Copyright © 2011-2022 走看看