99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

c++之函數(shù)對(duì)象與內(nèi)建函數(shù)

wang123a ? 來(lái)源:wang123a ? 作者:wang123a ? 2023-07-17 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.函數(shù)對(duì)象

  • 函數(shù)對(duì)象(仿函數(shù)):
    重載函數(shù)調(diào)用操作的類(lèi),其對(duì)象常稱(chēng)之為函數(shù)對(duì)象;
    函數(shù)對(duì)象使用重載()時(shí),其行為類(lèi)似函數(shù)調(diào)用,也叫仿函數(shù);
  • 函數(shù)對(duì)象本質(zhì):

函數(shù)對(duì)象(仿函數(shù))本質(zhì)是一個(gè)類(lèi),不是一個(gè)函數(shù)。

  • 函數(shù)對(duì)象特點(diǎn):

函數(shù)對(duì)象在使用時(shí)可以有形參、有返回值。
函數(shù)對(duì)象可以有自己的狀態(tài)值。
函數(shù)對(duì)象可以作為函數(shù)形參。

使用示例:

#include 
using namespace std;
class myfunc
{
public:
	myfunc()
	{
		count = 0;
	}
	//求和示例,重載()
	int operator()(int a, int b)
	{
		return a + b;
	}
	//輸出示例,count記錄函數(shù)調(diào)用次數(shù)
	void operator()(string str)
	{
		count++;
		cout 
wKgaomSzow6AR7vbAAV4tKPvhz8386.png

2.謂詞

  • 謂詞:
    函數(shù)對(duì)象返回值為bool類(lèi)型,則稱(chēng)之為謂詞;
  • 一元謂詞:
    仿函數(shù)的形參只有一個(gè);
  • 二元謂詞:
    仿函數(shù)的形參有兩個(gè)參數(shù);
#include 
#include 
#include 
using namespace std;
class Check
{
public:
	bool operator()(int val)
	{
		return val > 5;
	}
	bool operator()(int a1,int a2)
	{
		return a1 > a2;
	}
};
void test()
{
	vectorvtr;
	/*插入數(shù)據(jù)*/
	for (int i = 0; i < 10; i++)
	{
		vtr.push_back(i);
	}
	cout 5的值" 5的值*/
	vector::iterator ret=find_if(vtr.begin(), vtr.end(), Check());//Check()  ---匿名函數(shù)對(duì)象
	if (ret ==vtr.end())
	{
		cout 5的值!" 
wKgaomSzo36AfA7AAARZcc40veA240.png

3.內(nèi)建函數(shù)對(duì)象

  • 內(nèi)建函數(shù)對(duì)象:
    STL中提供了一些內(nèi)建函數(shù)對(duì)象:算術(shù)仿函數(shù)、關(guān)系仿函數(shù)、邏輯仿函數(shù) --頭文件

3.1算術(shù)運(yùn)算符

  • 算術(shù)仿函數(shù):實(shí)現(xiàn)四則運(yùn)算。

加法:template T plus
減法:template T minus
乘法:template T mutiplies
除法:template T divides
取模:template T modulus
取反:template T negate --正數(shù)變負(fù)數(shù),負(fù)數(shù)變正數(shù)

注意:其中negate是一元運(yùn)算(只有一個(gè)參數(shù)),其余均為二元運(yùn)算。

#include 
using namespace std;
#include 
void test()
{
	//negate使用示例:
	negate n;
	cout  p;
	cout m;
	cout mt;
	cout d;
	cout md;
	cout 

3.2關(guān)系運(yùn)算符

  • 內(nèi)建仿函數(shù):關(guān)系運(yùn)算符

大于: templatebool greater

大于等于:templatebool greater_equal

小于: templatebool less

小于等于:templatebool less_equal

等于: templatebool equal_to

不等于: templatebool not_equal_to

#include 
using namespace std;
#include 
#include 
#include 
void print(int val)
{
	cout  vtr;
	vtr.push_back(10);
	vtr.push_back(40);
	vtr.push_back(30);
	vtr.push_back(60);
	vtr.push_back(6);
	/*sort排序,默認(rèn)是從小到大,其默認(rèn)的仿函數(shù)即less*/
	sort(vtr.begin(), vtr.end());
	for_each(vtr.begin(), vtr.end(), print);
	cout a2;
			}
		}
		也可以直接使用STL內(nèi)建仿函數(shù):greater()
	*/
	sort(vtr.begin(), vtr.end(), greater());
	for_each(vtr.begin(), vtr.end(), print);
	cout 
wKgZomSzpV-AOdCcAARJXftbJKg672.png

3.3邏輯運(yùn)算符

  • 內(nèi)建仿函數(shù)--邏輯運(yùn)算符

邏輯與:templatebool logical_and
邏輯或: templatebool logical_or
邏輯非: templatebool logical_not

#include 
using namespace std;
#include 
#include 
#include 
void print(bool val)
{
	cout 
wKgaomSzpa-AF8o4AAPxhLsIPiA710.png




審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4379

    瀏覽量

    64820
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75250
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    GCC內(nèi)建函數(shù)問(wèn)題?。。?/a>

    目前的代碼中使用了GCC的內(nèi)建函數(shù)__builtin_clz()和__builtin_popcount(),在CCS中編譯不能通過(guò),請(qǐng)問(wèn),CCS是否有庫(kù)支持這兩個(gè)函數(shù),多謝!
    發(fā)表于 06-21 18:30

    C++教程之函數(shù)的遞歸調(diào)用

    C++教程之函數(shù)的遞歸調(diào)用 在執(zhí)行函數(shù) f 的過(guò)程中,又要調(diào)用 f 函數(shù)本身,稱(chēng)為函數(shù)的遞歸調(diào)用;形式上:一個(gè)正在執(zhí)行的
    發(fā)表于 05-15 18:00 ?35次下載

    C++課程資料詳細(xì)資料合集包括了:面向對(duì)象程序設(shè)計(jì)與C++,算法,函數(shù)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++課程資料資料合集包括了:面向對(duì)象程序設(shè)計(jì)與C++,算法,函數(shù),概述, C++語(yǔ)言基礎(chǔ),構(gòu)造數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)
    發(fā)表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細(xì)資料合集包括了:面向<b class='flag-5'>對(duì)象</b>程序設(shè)計(jì)與<b class='flag-5'>C++</b>,算法,<b class='flag-5'>函數(shù)</b>等

    如何在中斷C函數(shù)中調(diào)用C++

    之前,我們?cè)趩纹瑱C(jī)程序開(kāi)發(fā)時(shí)都會(huì)面對(duì)中斷函數(shù)。眾所周知的,這個(gè)中斷函數(shù)肯定是要用C函數(shù)來(lái)定義的。我在用C++進(jìn)行程序開(kāi)發(fā)的時(shí)候就發(fā)現(xiàn)了一個(gè)需
    發(fā)表于 05-09 18:17 ?0次下載
    如何在中斷<b class='flag-5'>C</b><b class='flag-5'>函數(shù)</b>中調(diào)用<b class='flag-5'>C++</b>

    C++拷貝構(gòu)造函數(shù)的淺copy及深copy

    C++編譯器會(huì)默認(rèn)提供構(gòu)造函數(shù);無(wú)參構(gòu)造函數(shù)用于定義對(duì)象的默認(rèn)初始化狀態(tài);拷貝構(gòu)造函數(shù)在創(chuàng)建對(duì)象
    的頭像 發(fā)表于 12-24 15:31 ?1000次閱讀

    C++函數(shù)模板的概念及意義

    一、函數(shù)模板的引出:1、c++中有幾種交換變量的方法:(1)定義宏代碼塊(2)定義函數(shù)代碼版本一:#include <iostream>#include <string>using namespace
    的頭像 發(fā)表于 12-24 15:58 ?1132次閱讀

    C++重載函數(shù)學(xué)習(xí)總結(jié)

    函數(shù)重載是c++對(duì)c的一個(gè)重要升級(jí);函數(shù)重載通過(guò)參數(shù)列表區(qū)分不同的同名函數(shù);extern關(guān)鍵字能夠?qū)崿F(xiàn)c
    的頭像 發(fā)表于 12-24 17:10 ?1037次閱讀

    C++基礎(chǔ)語(yǔ)法inline 內(nèi)聯(lián)函數(shù)

    上節(jié)我們分析了C++基礎(chǔ)語(yǔ)法的const,static以及 this 指針,那么這節(jié)內(nèi)容我們來(lái)看一下 inline 內(nèi)聯(lián)函數(shù)吧! inline 內(nèi)聯(lián)函數(shù) 特征 相當(dāng)于把內(nèi)聯(lián)函數(shù)里面的內(nèi)
    的頭像 發(fā)表于 09-09 09:38 ?2385次閱讀

    C++中如何用虛函數(shù)實(shí)現(xiàn)多態(tài)

    01 — C++函數(shù)探索 C++是一門(mén)面向對(duì)象語(yǔ)言,在C++里運(yùn)行時(shí)多態(tài)是由虛函數(shù)和純虛
    的頭像 發(fā)表于 09-29 14:18 ?1926次閱讀

    如何在MPLAB XC16編譯器內(nèi)建函數(shù)

    MPLAB XC16編譯器提供了一系列內(nèi)建函數(shù),使C語(yǔ)言編程人員可以訪問(wèn)目前只能通過(guò)行內(nèi)匯編訪問(wèn)的匯編運(yùn)算符或機(jī)器指令。內(nèi)建函數(shù)名都有一個(gè)前綴__builtin_,源代碼用C語(yǔ)言編寫(xiě),
    的頭像 發(fā)表于 01-22 17:37 ?2106次閱讀
    如何在MPLAB XC16編譯器<b class='flag-5'>內(nèi)建函數(shù)</b>

    函數(shù)C++開(kāi)發(fā)者如何有效利用

    函數(shù)是基類(lèi)中聲明的成員函數(shù),且使用者期望在派生類(lèi)中將其重新定義。那么,在 C++ 中,什么是虛函數(shù)呢?在 C++ 中,通常將虛
    的頭像 發(fā)表于 02-11 09:39 ?1179次閱讀

    深度解析C++中的虛函數(shù)

    函數(shù)作為C++的重要特性,讓人又愛(ài)又怕,愛(ài)它功能強(qiáng)大,但又怕駕馭不好,讓它反咬一口,今天我們用CPU的角度,撕掉語(yǔ)法的偽裝,重新認(rèn)識(shí)一下虛函數(shù)。 虛函數(shù)
    的頭像 發(fā)表于 02-15 11:14 ?1136次閱讀
    深度解析<b class='flag-5'>C++</b>中的虛<b class='flag-5'>函數(shù)</b>

    淺析C++執(zhí)行構(gòu)造函數(shù)編程實(shí)例

    C++保證在你調(diào)用delete時(shí),先自動(dòng)調(diào)用析構(gòu)函數(shù)(而我們安排在這個(gè)函數(shù)里面刪除它的法杖、法袍等對(duì)象),再刪除對(duì)象占用的內(nèi)存。
    發(fā)表于 03-03 15:44 ?457次閱讀

    C++基礎(chǔ)知識(shí)函數(shù)1

    函數(shù)C++ 中的一個(gè)重要概念,它可以讓我們將一段代碼封裝起來(lái),然后在需要的時(shí)候調(diào)用它。C++ 中的函數(shù)有以下幾個(gè)特點(diǎn): * 函數(shù)
    的頭像 發(fā)表于 04-03 10:34 ?832次閱讀

    C++基礎(chǔ)知識(shí)函數(shù)2

    C++中,我們可以使用inline關(guān)鍵字來(lái)定義內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)是一種特殊的函數(shù),它在編譯時(shí)會(huì)被直接嵌入到調(diào)用它的代碼中,從而避免了函數(shù)調(diào)
    的頭像 發(fā)表于 04-03 10:34 ?766次閱讀