STL 函式物件的使用

2021-08-23 12:41:48 字數 339 閱讀 9598

函式物件:定義了呼叫操作符的類,其物件稱為「函式物件」

stl中有大量的演算法,這些演算法是對slt中的容器進行操作,演算法需要函式物件作為引數因此使用stl演算法的時候需要寫函式物件。由於stl中的演算法和容器都是用模板設計出來的,因此我們在寫函式物件時也需要使用模板

函式物件相較於普通函式的優勢在於,函式物件的定義本身是乙個類,而類可以有資料成員,來保持自身狀態,這是普通的函式不具備的功能。

​ 函式只有乙個引數,稱為一元函式。函式物件只有乙個引數,且返回值為布林值時,為一元謂詞。

​ 函式物件有兩個引數,稱為二元函式,函式物件有兩個引數,且返回值為布林值時,為二元謂詞。

STL 函式物件

一 函式物件 functor stl中提供了一元和二元函式的兩種functor,通過unary function和binary function提供了這兩種不同引數數量的functor的基本結構,在這兩個型別中,分別內嵌定義一元和二元函式操作在模版推演的時候需要用到的typedef.一元函式的定義為...

STL 函式物件

4.1函式物件 4.1.1函式物件概念 過載函式呼叫操作符的類,其物件常稱為函式物件 函式物件使用過載的 時,行為類似函式呼叫,也叫仿函式 本質 函式物件 仿函式 是乙個類,不是函式 函式物件使用 特點 函式物件在使用時,可以像普通函式那樣呼叫,可以有引數,可以有返回值 函式物件超出普通函式概念,函...

STL中的函式物件

stl不但使我們能夠更輕鬆 更快捷地編寫複雜的 而且使編寫的 既標準又高度優化。std vectornames std sort names.begin names.end stl另乙個優雅之處在於高度可配置。在以上的 中,使用string的小於 操作符對vector中的string元素進行排序,但...