紫書例題5 5 集合棧計算機

2021-10-11 02:04:26 字數 737 閱讀 3760

uva 12096 超級難的一題..

1.set() 表示空集

2.set_union 求並集 set_intersation 求交集 用法

set_union(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));
前4個引數是兩個集合的起點終點. 然後最後乙個的插入迭代器第乙個填同型別的的東西(新生成的並集)和那個起點.begin.

交集同理

set_intersection(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));
3.然後是插入加入元素.

x=x2;x.insert(id(x1));
注意x.insert必須是插入有序的的組合中.

4.完整**

#includeusing namespace std;

typedef setset;

vectorsetcache; mapidcache;

int id(set x)

int main()

else if(op[0]=='i')

else s.push(id(x));

} cout<} cout<<"***"<}return 0;}

例題5 5uva12096集合棧計算機(看)

這題思想在於 轉化 用集合去套集合是明顯不行的 可能也是我菜 所以 可以給每個不一樣的集合分配乙個id,用map 那麼我們對於集合棧而言就只要存 整型 即每個集合的id即可 而那光存id沒用啊,如果用到集合咋整,所以再開個 map 用id找他所對應的集合 此時的 pull 和 dup 就解決了 還有...

UVa 12096 集合棧計算機

這題的話,我們讀入操作之後,首先對於空集就是初始化為空。我們可以使用typedef 對於 set 重新命名為set,這樣就可以直接用set 的語法進行空集的初始化了。這題主要是對於集合的處理,我們可以給集合乙個對映函式,這個函式對於已知集合就返回該id,讓主函式進行相應的操作。對於未知集合就按序存入...

uva 12096 集合棧計算機

uva 12096 集合棧計算機 題目 有乙個專門為了集合運算而設計的 集合棧 計算機。該機器有乙個初始為空的棧,並且 支援以下操作。push 空集 入棧。dup 把當前棧頂元素複製乙份後再入棧。union 出棧兩個集合,然後把二者的並集入棧。intersect 出棧兩個集合,然後把二者的交集入棧。...