#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
classa}
;int
main
(void);
//統計某個值出現的次數
int count01 =
count
(myvector.
begin()
, myvector.
end(),
34); cout << count01 << endl;
//1//統計值大於40的元素,使用count_if
a a;
count01 =
count_if
(myvector.
begin()
, myvector.
end(
), a)
; cout << count01 << endl;
//3//如果使用less中的帶兩個引數的來實現我們的功能--使用bind,把其中的乙個引數繫結為40
bind
(less<
int>()
,40, placeholders::_1);/
*less<
int>的operator
()第乙個引數繫結為40,這樣當呼叫這個可呼叫物件時候,第二個引數就是
*這裡placeholders::_1表示,在呼叫這個函式時候,被傳入的第乙個引數所取代
**/int count02 =
count_if
(myvector.
begin()
, myvector.
end(),
bind
(less<
int>()
/*臨時物件*/,40
, placeholders::_1));
// placeholders::_1是乙個佔位符
cout << count02 << endl;
//例子
//auto bf = bind(less(), 40, placeholders::_1);
//bf(19);//19傳遞給placeholders::_1
//反向介面卡
cout <<
"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
<< endl;
for(vector<
int>
::reverse_iterator riter=myvector.
rbegin()
;riter!=myvector.
rend()
;riter++
)system
("pause");
return0;
}/**(1)介面卡的基本概念
*把乙個既有的東西,進行適當的改造,比如增加東西,或者減少東西,構成乙個介面卡。
*adapter(介面卡) 通過限制模型的功能以讓它滿足另乙個模型的功能,相當於改變了介面,但實現不變。
**(2)介面卡分類
*容器介面卡
* 2.1如學習的stack是deque的限制部分功能來實現的。
* queue也是deque的介面卡。
*演算法介面卡
* 最典型的就是繫結器binder
* 老版本中的bind1st bind2nd在c++11中修改為bind,
* 查閱資料**:
* *
* *迭代器介面卡
* 反向介面卡
*(3)總結**
介面卡模式總結
介面卡模式核心思想 將a介面的物件轉化成b介面的物件,使之從外觀上看似是b物件。可是確實a物件在執行實際的業務邏輯。看到介面卡模式的第一感覺就是 這也算個模式?就應該這樣處理啊!生活中有非常多鮮活的樣例,如網路介面卡 網絡卡 數據機,資料線,充電器等等。其缺點就是。須要有這麼乙個額外的東西才幹進行轉...
介面卡模式總結
介面卡注意 使用場景 有動機地修改乙個正常執行的系統的介面,這時應該考慮使用介面卡模式。注意事項 介面卡不是在詳細設計時新增的,而是解決正在服役的專案的問題。介面卡關鍵點 介面卡的關鍵就是,將被適配者載入到已經定義好的或在執行的系統中.介面卡需要實現目前執行系統中的介面,並轉成被適配者需要的格式.介...
介面卡模式總結
1 定義 我喜歡的樣子你都有,你喜歡的樣子我有沒有,沒有的話,我送你乙個介面卡,好嗎?將乙個類的介面轉換成客戶希望的另外乙個介面,adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。2 使用場景 系統資料和行為都正確,但介面不符時,我們應該考慮用介面卡,目的是使控制範圍之外的...