C Map Key值的比較操作

2021-06-26 15:55:34 字數 923 閱讀 3789

一. 資料結構:

map的資料結構是二叉樹(紅黑樹),可以認為是平衡搜尋二叉樹,按照key值進行排序的。於是,key值的型別應該有比較操作。

int, string型別等可以進行預設的比較操作。

對於自定義的結構和型別,需要定義比較操作才能做key值。

二. 定義比較操作

1. 可以在型別中過載operator《操作:

bool operator<(const a& a)const{}

2. 定義乙個類來實現operator()函式操作:

bool operator()(const a& a, const a& b)const{}

也是實現過載;

3. 定義乙個比較函式,在宣告map<>的時候用函式指標呼叫它。

bool funcpcomp(const a& a, const a& b){}

**如下:

#include #include using namespace std;

static int num = 0;

class a

bool operator<(const a&a)const{ //method0, 過載,所以注意引數和返回值型別

return im;

mapm1;

mapm2(funcpcomp);

a a;

a b;

m.insert(make_pair(a, "12"));

m.insert(make_pair(b, "34"));

m1.insert(make_pair(a, "12"));

m1.insert(make_pair(b, "34"));

m2.insert(make_pair(a, "12"));

m2.insert(make_pair(b, "34"));

cout<

bool值進行 和 以及 操作的速度比較

最近優化 時無意發現的問題,對於bool值,三個操作的耗時如何呢,果然是有差別的,還挺大!size t ntimes 10000000 bool btest true clog out start for size t i 0 i ntimes i clog out end clog out sta...

DataFrame的比較和缺失值比較

pandas使用numpy nan np.nan 物件表示缺失值。這是乙個不等於自身的特殊物件 np.nan np.nan false python的none物件是等於自身的 none none true 所有和np.nan的比較都返回false,除了不等於 9 np.nan false5 np.n...

JavaScript的物件值比較

做畢業設計寫一些前端的 雖然不是很懂,也簡單的也能應付一下,今天就碰到這個問題 var selfvalue self.numberspinner getvalue var dadvalue dad.numberspinner getvalue if dadvalue selfvalue 從easyu...