(注意:需包含標頭檔案 functional)步驟
bind2nd 或者 bind1st 將兩個引數進行繫結
bind2nd 繫結順序是一致
類繼承 binary_function《型別1 ,型別2 ,返回值型別》
加 const 寫法
class
myprint
:public binary_function<
int,
int,
void
>};
void
test01()
cout <<
"請輸入累加的值"
<< endl;
int num;
cin >> num;
for_each
(v.begin()
, v.
end(),
bind2nd
(myprint()
, num));
}
步驟
一元取反 not1
類繼承 unary_function《型別1 ,返回值型別》
加const
二元取反 not2 寫法
class
greaterthenfive
:public unary_function<
int,
bool
>};
void
test02()
//二選一 第二個結合了bind2nd更深些
//vector::iterator pos = find_if(v.begin(), v.end(), not1( greaterthenfive()));
vector<
int>
::iterator pos =
find_if
(v.begin()
, v.
end(),
not1
(bind2nd
( greater<
int>()
,5))
);if(pos != v.
end())
else
vector<
int>v1;
for(
int i =
0; i <
10; i++
)sort
(v1.
begin()
, v1.
end(),
not2
( less<
int>()
));for_each
(v1.
begin()
, v1.
end(),
(int val));
}
步驟
ptr_fun 將函式指標 適配為函式物件 寫法
void
myprint3
(int val ,
int start)
void
test03()
cout <<
"請輸入累加起始值"
<< endl;
int num;
cin >> num;
//將 函式指標 適配成 函式物件 再用bind繫結引數
for_each
(v.begin()
, v.
end(),
bind2nd
(ptr_fun
( myprint3)
,num));
}
步驟
mem_fun_ref 存放物件本體
mem_fun 存放物件指標 (當成員是物件指標的情況,很少用到,這裡沒有舉例子) 寫法
class
person
void
showperson()
void
plusage()
string m_name;
int m_age;};
void
test04()
STL之介面卡
摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...
STL之介面卡
摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...
STL介面卡 函式介面卡
有時候需要對內建函式物件返回值進行進一步的簡單計算,或者填上多餘的引數,不能直接代入演算法。函式介面卡實現了這一功能,函式介面卡是將一種函式物件轉化為另一種符合要求的函式物件。函式介面卡可以分為4個大類 繫結介面卡 組合介面卡 指標函式介面卡和成員函式介面卡。需求 在遍歷容器的時候,將容器中的值全部...