那是乙個遙遠的小山村:
這一天,學院的老師需要對各位小忍者的資訊進行根據名字,年齡,戰鬥力進行錄入,並有效查詢出某個戰鬥力段的最大的那位忍者,於是他求助聰明的我hhh
首先,如果我們採用普通的陣列或者vector進行增改,雖然vector在尾部進行插入時候的時間複雜度低,但是要是有那麼一天
忍者村放開二胎政策
那忍者學校學生肯定刷刷shau地漲那麼它呢能要跑一天一夜(對),於是,我們用到了multimap函式;
標頭檔案是
#include
multimap和map一樣,他們的資料都是pair的物件既:pair(key,t,less(n))
其中map和mutimap的first和second分別對應key型別和t型別,都是可以被我指定的資料型別,less()不寫就是預設的公升序排序;
考慮到學院裡可能存在相同戰鬥力或者相同名字的忍者,所以現在把刀架在我們脖子上叫我們用multimap(滑稽)//因為map不支援插入相同的key型別的資料
考慮到pair物件裡只能有key和t型別的資料,所以我們要建立乙個t型別的結構體,內包含了小忍者的名字和編號
struct cn
;
寫在類裡面就是:
class
make_wood
; cn cc;
//要先定義乙個
};
定義乙個multimap模板(就是可以省得寫那麼多):
typedef multimap<
int,make_wood::cn> cub;
//multimap允許存在key相同的插入
先大概介紹下程式的功能,當老師輸入:i(insert)時,就是對容器增加忍者的資料分別是,名字,編號,戰鬥力;
當老師輸入s(search)時,然後老師輸入戰鬥力,找出低於這個戰鬥力的最大戰鬥裡的最大編號的忍者的資訊(好繞hhh)
有必要說一下的就是,對multimap插入pair的資料的方式是:
ninja.
insert
(cub::
value_type
(info.combat,info.cc));
//這裡可以換成:
//make_pair(info.combat,info.cc);以為,make_pair是pair內部的方法
這裡的ninja表示忍者(multimap的物件)而multimap裡有value_type的方法
#include
#include
#include
using
namespace std;
//木葉村戰力排行榜 ,戰力資訊,代號,姓名
class
make_wood
; cn cc;
//要先定義乙個};
typedef multimap<
int,make_wood::cn> cub;
//multimap允許存在key相同的插入
intmain()
else
if(i==
"s")
//這裡的查詢是查比這個戰鬥力小的最大的那個的最大的學號的名字
}//因為迴圈到it==ninja.begin()結束,所以當it和它相等時候沒有進行比較
//so
if(it-
>first==com)
} cout<<
"忍者名稱:"
<
>second.name<<
"忍者編號:"
<
>second.number<<
"忍者戰鬥力:"
<
>first<
}else
continue;}
}return0;
}
執行結果:
C 實現管理系統
inkmacsystemfont,helvetica neue pingfang sc hiragino sans gb microsoft yahei arial font size 12px white space normal background color rgb 255,255,255 ...
C 實現的簡單記憶體管理
當系統中需要大量的頻繁分配釋放記憶體,且對資料處理時間存在較高要求時,可以採用預分配記憶體,然後自行管理的方式。下面是一種簡單的實現方式,只能分配定長陣列而且不支援併發訪問。使用陣列作為載體,每個陣列都為乙個記憶體結構,使用時查詢未被使用的記憶體結構獲取其引用。所使用的記憶體長度全部固定,適用於定長...
C 實現 超市管理系統
侵刪 非原創,自己碼的。計算顧客購買商品的價錢 public double getmoney productbase products return money using system using system.collections.generic using system.linq using...