小陈的C++入门之旅:代码优化

提升C++代码运行速度的7个小技巧

1. 删除无用的代码

这个不用多说了

2. if语句

for(auto i:edge)
        if (i == node)
    
            return true;
           
    return false;
    //这样的代码块,if语句是多余的,可以更改为:
for(auto i:edge)
    return i == node

 

建议把可能性最高的if分支放到最前面,很少执行到的分支放后面

3. for循环

4. 减少中间变量

5. 提前给向量分配存储空间

vector<int> edge;
edge.reserve(100);//100就是提前分配的空间

6. 使用引用传递函数参数

double distanceCount(vector<vector<double>> &dist_map , const vector<int> &node){

    //仔细思考下,距离的计算是原有节点距离 + 1,c++中平方运算pow(x,2),x^2没用
    return dist_map[node[0]][node[1]] + 1;
}//像这种传入的参数是大的二维向量的,采用引用可以显著减少运行时间。

7. 重复使用的变量加static

如果重复使用某个函数,函数里的变量会不断创建和销毁。使用static可去掉这个重复的过程。

vector<vector<int>> *initial(){

    // static vector<int> start_node = {4,0}, end_node = {0,4};
    static vector<vector<int>> v = {{4,0},{0,4}};//start_node and end_node
    vector<vector<int>> *p = &v;
    return p;

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值