函式物件: 常用於標準模板庫stl的演算法
1. 定義上為函式的物件;
2. 實現上是實現了operator()的類的物件;
常用的函式物件可分為多種:
1 一元函式:輸入為1個引數
2 二元函式:輸入為2個引數
3 帶變數的一元函式:輸入為1個引數,且類內有屬性成員
4 帶變數的二元函式:輸入為2個引數,且類內有屬性成員
5 一元謂詞:輸入為1個引數,返回值為bool變數
6 一元謂詞:輸入為5個引數,返回值為bool變數
這裡僅對一元函式,一元謂詞,二元謂詞進行舉例。
#include #include #include #include using namespace std;
/*1 函式模板:為了列印不同型別的內容*/
template void displaycontent(const t1 input)
cout << endl;
}/*2 函式物件(實現operator()類的物件) - 一元函式*/
template class funobjonevar
};/*3 函式物件- 一元謂詞*/
template class funobjoneword
bool operator () (const t& input)
};/*4 函式物件- 二元謂詞*/
template class funobjtwoword
};int main()
/*使用函式物件-一元函式,用於stl演算法for_each()*/
cout << "the original data:" << endl;
std::for_each(intvector.begin(), intvector.end(), funobjonevar ());
cout << endl;
/*使用函式物件- 一元謂詞,用於stl演算法find_if*/
int divinput = 2;
cout << "the value%2 == 0 data:" << endl;
auto iterator = std::find_if(intvector.begin(), intvector.end(), funobjoneword (divinput));
if (iterator != intvector.end())
cout << "value = " << *iterator << endl;
cout << endl;
/*使用函式物件- 二元謂詞,用於stl演算法sort()排列順序不考慮大小寫*/
std::vector charvector;
charvector.push_back('b');
charvector.push_back('a');
charvector.push_back('d');
charvector.push_back('e');
cout << "original char data:" << endl;
displaycontent(charvector);
cout << "de****t sort():" << endl;
sort(charvector.begin(), charvector.end());
displaycontent(charvector);
cout << "use funobjtwoword re-sort():" << endl;
sort(charvector.begin(), charvector.end(), funobjtwoword());
displaycontent(charvector);
return 0;
}
the original data:
0 1 2 3 4 5
the value%2 == 0 data:
value = 0
original char data:
[0] = b
[1] = a
[2] = d
[3] = e
de****t sort():
[0] = a
[1] = d
[2] = b
[3] = e
use funobjtwoword re-sort():
[0] = e
[1] = b
[2] = d
[3] = a
韓順平網頁設計第四十六講
dom把html中的每個元素都當成乙個node 節點 來看待,每個node都有很多方法。具體如下表 在dom程式設計中,乙個html文件會被當做dom樹對待,所有的html元素都被轉換成node節點。所以我們就可以用node 節點的屬性和方法來操作這些html元素。比如上圖的方法。document的...
NeHe OpenGL第四十六課 全屏反走樣
nehe opengl第四十六課 全屏反走樣 全屏反走樣 下面我們來介紹如何使用多重取樣,不向其他的擴充套件,我們在使用多重取樣時,必須在視窗建立時告訴它使用多重取樣,典型的步驟如下 1 建立乙個視窗 2 查詢是否支援多重取樣 3 如果支援刪除當前的視窗,使用支援多重取樣的格式建立視窗 4 如果我們...
python學習第四十六天dir 函式用法
dir 函式有點像目錄的意思,但是他是包含由模組定義的名稱的字串的排序列表。這個列表包含模組中定義的所有模組,變數和函式的名稱。列舉其用法 import time content dir time print content 輸出結果 struct tm items doc loader name ...