class node{
public:
unsigned long long int value;
int index;
};
bool comp2(node& a,node& b){
if(a.value < b.value) { return true; }
return false;
}
vector <node*>llist,rlist;
sort(llist.begin(),llist.end(),comp2);
上記のコードは私にいくつかの他の行(コード中の後者)にもある致命的なエラーを与えていましたが、stl :: sort()内の比較関数
bool comp2(node* a,node* b){
assert(a && b && "comp2 - null argument");
if(a->value < b->value){ return true; }
return false;
}
これに関する理論的根拠はありますか。
ERROR:/usr/include/c++/4.4/bits/stl_algo.h|124|error: invalid initialization of reference of type ‘node&’ from expression of type ‘node* const’|
この場合には、(怒鳴る)もあなたがnode *
のstd::vector
を定義している
using namespace std;
void rep(int& a,int& b){
int c;
c=a;
a=b;
b=c;
}
int main(void){
int a=3,b=4;
rep(a,b);
cout<<a<<" "<<b;
return 0;
}
「奇妙なエラーが」正確には何ですか? –
@ gtk.pro:私はリファクタリングに自由を取った(フォーマットを整理し、メソッドを整理した)。 –
@Matthieu:あなたは間違いなく、コード良く行われていないが、それはさらに良く持っていたされていたであろうIMHOあなたはそのままのコードを残し、答えとして、あなたのリファクタリングを投稿(はい、オフトピックが、そのような修正が一般的に受け入れられています)。これにより、*なぜ*あなたがリファクタリングを行うかを説明する機会が与えられます。 –