-1
vector<int> G[MAXN] ;
char isLeaf[MAXN] ;
int n,path;
for(int i = 0;i < n;i++) path -= isLeaf[i] = G[i].size() == 1 ;
// Forループのコードはどのように機能しますか?私はここで複数のオペレータが混乱しています。複数の演算子を1行に入力
vector<int> G[MAXN] ;
char isLeaf[MAXN] ;
int n,path;
for(int i = 0;i < n;i++) path -= isLeaf[i] = G[i].size() == 1 ;
// Forループのコードはどのように機能しますか?私はここで複数のオペレータが混乱しています。複数の演算子を1行に入力
によりoperator precedence and associativityに、声明
path -= isLeaf[i] = G[i].size() == 1 ;
は同等です:あなたはわかりやすくするために複数の文に分割した場合、あなたが得る
path -= (isLeaf[i] = (G[i].size() == 1));
:
bool temp = (G[i].size() == 1);
isLeaf[i] = temp;
path -= isLeaf[i];
ありがとう、それは働いていました:) –
@BenVoigt ' G'は 'ベクトル 'の配列です。 –
@GillBates:ちょうど気づいた、私は間違った書式に気を取られた。 –
*演算子の優先順位*を読んで検討してください。また、代入演算子は値を返します。演算子 '=='は、整数定数(偽の場合は0、真の場合は非ゼロ)に変換できる 'true'または' false'値を返します。悪いコード。コピーしないで。ごみ箱に入れて書き直してください。 –