我們可以用乙個類來模擬集合及集合運算,add運算用以實現集合元素的增加,delete運算用於實現集合元素的刪除,find運算用以實現集合元素的查詢,但是目前集合元素型別未知,可以是int、char、double等基本資料型別,也可以是string、time、student等物件型別,要求採用類模板實現集合及集合運算,包括集合元素的增加、刪除和查詢的等基本功能。
集合模板類myset包括資料如下:
t data[100];//用陣列來存放所有的集合元素,最多不超過100個元素
int count;//表示目前集合中有多少個元素
包括成員函式如下:
建構函式若干個,集合運算函式如下:
int addset( t elem)
int deleset(t elem)
int findelem(t elem)
其中,addset向集合中新增乙個元素,deleset從集合中刪除乙個元素,findelem判斷elem是否是集合成員,三個函式分別返回元素插入位置,刪除位置和存在位置。
主函式有如下資料成員 :
myset<\int>\ intset;(反斜槓是轉義字元,使用時去掉)
myset<\double>\ douset;
myset<\string>\ strset;
分別是int型別、double型別、string的集合。
完成上述類模板和主函式,主函式根據輸入的資訊,建立初始的三種不同型別的空集合物件,呼叫成員函式分別對intset、douset和strset執行相應的操作,並輸出對應的集合資訊。
輸入格式:
每一行為乙個集合操作,每行的第乙個數字為集合元素型別,1為整型元素,2為浮點型元素,3為string型別,第二個數字為集合操作型別,1為插入,2為刪除,3為查詢,第三個為集合元素,集合元素型別視第乙個數字給定的集合元素型別而定。輸入0時標誌輸入結束。
輸出格式:
輸出當前操作的執行位置(插入位置、刪除位置和存在位置)
刪除操作時,如果元素x不存在,輸出「x is not exist!」。
插入操作時,如果集合已滿,輸出「full set.」若元素已存在,輸出「x is already exist!」
查詢操作時,如果找不到元素,輸出「x is not exist!」。
輸入:1 1 1
1 1 2
1 3 1
1 2 1
1 2 3
1 3 1
2 1 1.1
2 1 2.2
2 1 3.3
2 3 1.1
2 2 2.2
2 2 2.2
3 1 abc
3 1 bcd
3 3 abc
3 2 abc
3 3 abc
輸出:3 is not exist!
1 is not exist!
2.2 is not exist!
abc is not exist!
#include
using
namespace std;
template
<
class
t>
class
myset
intfind
(t elem)
return-1
;}void
findelem
(t elem)
} cout<" is not exist!"
<}void
addset
(t elem)if(
find
(elem)
>=0)
int k=count;
data[count++
]=elem;
cout<}void
deleset
(t elem)
for(
int i=k;i1;i++
) cout
};intmain()
break
;case2:
cin>>type2>>elementd;
switch
(type2)
break
;case3:
cin>>type2>>elements;
switch
(type2)
} cin>>type1;
}}
Pta題目集 7 36 集合相似度 (25 分)
7 36 集合相似度 25 分 給定兩個整數集合,它們的相似度定義為 n c n t 100 其中n c 是兩個集合都有的不相等整數的個數,n t 是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合...
2018 08 28 集合堆疊機(模擬 STL)
描述 中學數學裡集合的元素往往是具體的數字,比如a b 空集 等等。但是要特別注意,集合的元素也可以是另乙個集合,比如說c 即說明c有且僅有乙個元素 空集b,所以稱b是c的子集或者稱b是c的元素都是正確的。所謂乙個集合的勢,就是這個集合的元素個數,一般記為 s 空集的勢為0。在上例中,a 3,b 0...
PTA 天梯賽訓練 L2 005 集合相似度
給定兩個整數集合,它們的相似度定義為 nc n t 100 其中nc是兩個集合都有的不相等整數的個數,n t是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m...