提升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;
}