私のコードは、container std :: set()を使用しています。今度は私がwhile(t)ループを実行するたびに、コンテナstd :: setにあるデータは消去されません。なぜこのようなことが起こっていますか。私のコンテナを再宣言しても、コンテナの値はどうなっていますか?保持される。C++で同じ名前のstd :: container()を再宣言すると、前のデータがフラッシュされますか?
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int t,i,k,n,m;
cin >> t;
set <int> s;
while(t--){
cin >> n >>m;
for(i=0;i<n;i++){
cin >> k;
s.insert(k);
}
for(i=0;i<m;i++){
cin >> k;
if(s.count(k)==1){
cout << "YES" << endl;
}
if(s.count(k)==0){
cout << "NO" << endl;
s.insert(k);
}
}
//s.clear();
}
return 0;
}
正確にあなたはセットを再宣言しますか? –
@VarunGarg - あなたの編集をロールバックしたことに注意してください。あなたの編集はあなたの特定の問題を解決してくれました。答えは冗長で、将来の読者は混乱します。私たちはあなたの問題をソートしました:-) –
ありがとうございました。 –