求帮忙
2024-03-09 14:36:44
发布于:广东
71阅读
0回复
0点赞
遇到困难,求大神指点
#include<bits/stdc++.h>
using namespace std;
const set<int> null;//只是为了把allActionList定义出来设计的占位表
namespace actions{
enum action{
follow = 1,
nofollow,
askfollow
}; //枚举三个操作的值
}
int main(){
int t;
vector<set<int> > allActionList;//set中存放着关注的人的编号
//set所处的位置的下标+1即为成员编号
cin >> t;
while(t--){
int n,q;
cin >> n >> q;
for(int i = 0;i < n;i++){
allActionList.push_back(null); //把空set填入allActionList 一共填入n个,代表n个成员
}
int action,memberA,memberB;
for(int i = 0;i < q;i++){
cin >> action >> memberA >> memberB;
switch(action){ //判断三个操作
case actions::follow:
if(allActionList[memberA-1].count(memberB) == 1){
break;
}
else{
allActionList[memberA-1].insert(memberB);
break;
}
case actions::nofollow:
if(allActionList[memberA-1].count(memberB) == 0){
break;
}
else{
allActionList[memberA-1].erase(memberB);
break;
}
case actions::askfollow:
if(allActionList[memberA-1].count(memberB) == 1 && allActionList[memberB-1].count(memberA) == 1){
cout << "Yes" << endl;
break;
}
else{
cout << "No" << endl;
break;
}
}
}
allActionList.clear();
}
return 0;
}
全部评论 1
看到你的错误是RE,vector一开始没有任何数据,范围就越界。
2024-03-14 来自 浙江
1这。。。有什么解决办法吗
2024-03-23 来自 广东
0可以尝试判空处理,如果为空就直接加入
2024-07-10 来自 江苏
0
有帮助,赞一个