1、C++中數組作為實際參數傳遞的三種形式參數方法
#include<iostream>
using namespace std;
void change(int& a,int b){ //通過引用,引用是原變數的別名,變數值返回時會受影響
a=5;
}
void change1(int* a,int b){ //通過指標進行傳遞,變數值返回時會受影響
*a=0;
}
void change2(int a,int b) { //變數值返回時不會受影響
a=2;
}
int main(){
int c=6,d=4;
change(c,d); //直接傳遞變數
cout<<c<<endl;
change1(&c,d); //傳遞變數地址
cout<<c<<endl;
change2(c,d); //傳遞變數
cout<<c<<endl;
return 0;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2、C++中的優先隊列,預設是大堆,自訂為小堆,注意:如何重載opertor<函數。
/* 在struct結構中重載operator< 函數
#include<iostream>
#include<string>
#include<queue>
using namespace std;
struct ss{
string name;
double score;
//自訂struct元素類型的operator<重載函數,使得優先隊列中,將小元素放在隊列的首部
//返回true的排在後面
friend bool operator<( const ss& a, const ss& b){ return a.score> b.score ;
}
};
int main(){
struct ss stu[]={{"suting",120.0},{"xiaowang",123.0},{"xiaoli",110}};
priority_queue<ss> q;
for(int i=0; i< sizeof stu/sizeof stu[0] ; i++)
q.push(stu[i]);
cout<<q.top().name<<endl;
}
*/