7.1 仿函式概觀
功能分類
7.2 可配接的關鍵
為了能夠擁有配接能力,每乙個仿函式必須定義自己的響應型別。這些型別是為了讓配接器能夠取出,獲得仿函式的某些資訊。
7.4 算術類仿函式
加法:plus
template struct plus:public binary_function
};
減法:minus
template struct minus:public binary_function
};
乘法:multiplies
tmeplatestruct muliplies:public binary_function
};
除法:divides
tmeplatestruct divides:public binary_function
};
模取:modulus
tmeplatestruct modulus:public binary_function
};
否定:negate
tmeplatestruct negate:public unary_function
};
證同元素
所謂「運算op的證同元素」,意思是數值a若與該元素做op運算,會得到a自己。例如加法的證同元素是0,任何元素加上0都是自己本身。乘法的證同元素是1,任何元素乘1都為元素本身。
7.4 關係運算類仿函式
等於:equal_to
templatestruct equal_to:public binary_function
}
templatestruct not_equal_to:public binary_function
}
templatestruct greater:public binary_function
}
templatestruct greater_equal:public binary_function
}
templatestruct less:public binary_function
}
templatestruct less_equal:public binary_function
}
邏輯運算子仿函式
邏輯運算and:logical_and
templatestruct logical_and:public binary_function
}
邏輯運算or:logical_or
templatestruct logical_or:public binary_function
}
邏輯運算not:logical_not
templatestruct logical_not:public unary_function
}
證同(identity)、選擇(select)、投射(project)
//證同函式。任何數值通過此函式後,不會有任何改變
//此式運用於,用來指定rb-tree所需的keyofvalue op
//set元素鍵值即實值,所以採用identity
template struct identity : public unary_function
}//選擇函式:接收乙個pair,返回其第一元素
//此式運用於,用來指定rb-tree所需的keyofvalue op
//由於map係以pair元素的第一元素為其鍵值,所以採用select1st
template struct select1st : public unary_function
}//選擇函式:接收乙個pair,傳回其第二元素
//sgi stl未運用此式
template struct select2nd : public unary_function
}//投射函式:傳回第一引數,忽略第二引數
//sgi stl未運用此式
templatestruct project1st : public binary_function
}//投射函式:傳回第二引數,忽略第一引數
//sgi stl未運用此式
templatestruct project2nd : public binary_function
}
STL原始碼剖析學習十八 仿函式
仿函式 又叫函式物件,可以達到 將整組操作當做演算法的引數 定義於標頭檔案 stl仿函式應該具有配接的能力 一般寫法 template class a private 呼叫方式 a 用class和struct都可以,注意class中必須要將過載 的函式寫在public內 stl不支援三元仿函式 定義...
stl原始碼剖析 詳細學習筆記 仿函式
15 04 01 仿函式是為了演算法而誕生的,可以作為演算法的乙個引數,來自定義各種操作,比如比大小,返回bool值,對元素進行操作等 雖然這些函式也能實現,但是如果配合配接器 adapter 可以產生更靈活的變化。為了使物件像函式一樣,就必須過載operator unary function te...
stl 仿函式 函式物件
定義 stl原始碼剖析 仿函式其實上就是乙個 行為類似函式 的物件。即主體是物件,只是使用起來像乙個函式。傳遞函式指標 templatebool compare to const t x,const t y templatevoid print compare t fun int main 傳遞的是...