@[Prosecutor_Godot_](/user/789404) 在**最关键的**进行末三种操作(UNION,INTERSECT和ADD)时,你直接将集合拉下来操作。
但是,因为修改后的东西有一项 ADD 操作,需要把两个集合并(不是并集)起来,需要操作的对象是集合编号,因此需要用集合编号来进行。
具体的你可以看我的代码:
```cpp
else
{
int a = stk.top();
stk.pop();
int b = stk.top();
stk.pop();
set<int> st;
if (op == "UNION")
set_union(rcnv[a].begin(), rcnv[a].end(), rcnv[b].begin(), rcnv[b].end(), inserter(st, st.begin()));
else if (op == "INTERSECT")
set_intersection(rcnv[a].begin(), rcnv[a].end(), rcnv[b].begin(), rcnv[b].end(), inserter(st, st.begin()));
else if (op == "ADD")
{
st = rcnv[b];
st.insert(a);
}
stk.push(getid(st));
}
```
by AlexandreLea @ 2024-02-12 23:54:46