我是竞争性编程的初学者。我遇到了一个问题,所以我查看了 我遵循的人代码。
I didn't understand this following part particularly:
int i,n,a[1005]={},b;
vector<int>v;
cin>>n;
for(i=0;i<n;i++)
{
cin>>b;
if(!a[b])v.push_back(b);
a[b]=i+1;
}
here, what does the condition "if(!a[b])" denote? I could not find it on google.
Please help me. Thank you
!
表示not
运算符。因此,这就是检查变量值的相反值的方法。这是检查元素 a
处的数组 b
是否存在。如果它不存在,则!a[b]
,然后将b
推入向量v
并更新a[b]
。否则,什么也不做,只更新a[b]
。
!表示不操作。 假设 a[b] = 5,那么 a[b] 将为 true,输入 !符号表示整个表达式 (!a[b]) 为假。 同样,如果 a[b] = 0,则 a[b] 将为 false,而 (!a[b]) 将为 true。