色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

c++之函數對象與內建函數

wang123a ? 來源:wang123a ? 作者:wang123a ? 2023-07-17 09:46 ? 次閱讀

1.函數對象

  • 函數對象(仿函數):
    重載函數調用操作的類,其對象常稱之為函數對象;
    函數對象使用重載()時,其行為類似函數調用,也叫仿函數;
  • 函數對象本質:

函數對象(仿函數)本質是一個類,不是一個函數。

  • 函數對象特點:

函數對象在使用時可以有形參、有返回值。
函數對象可以有自己的狀態值。
函數對象可以作為函數形參。

使用示例:

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

2.謂詞

  • 謂詞:
    函數對象返回值為bool類型,則稱之為謂詞;
  • 一元謂詞:
    仿函數的形參只有一個;
  • 二元謂詞:
    仿函數的形參有兩個參數
#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;
	/*插入數據*/
	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()  ---匿名函數對象
	if (ret ==vtr.end())
	{
		cout 5的值!" 
wKgaomSzo36AfA7AAARZcc40veA240.png

3.內建函數對象

  • 內建函數對象:
    STL中提供了一些內建函數對象:算術仿函數、關系仿函數、邏輯仿函數 --頭文件

3.1算術運算符

  • 算術仿函數:實現四則運算。

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

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

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

3.2關系運算符

  • 內建仿函數:關系運算符

大于: 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排序,默認是從小到大,其默認的仿函數即less*/
	sort(vtr.begin(), vtr.end());
	for_each(vtr.begin(), vtr.end(), print);
	cout a2;
			}
		}
		也可以直接使用STL內建仿函數:greater()
	*/
	sort(vtr.begin(), vtr.end(), greater());
	for_each(vtr.begin(), vtr.end(), print);
	cout 
wKgZomSzpV-AOdCcAARJXftbJKg672.png

3.3邏輯運算符

  • 內建仿函數--邏輯運算符

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

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




審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62749
  • C++
    C++
    +關注

    關注

    22

    文章

    2112

    瀏覽量

    73707
收藏 人收藏

    評論

    相關推薦

    GCC內建函數問題?。?!

    目前的代碼中使用了GCC的內建函數__builtin_clz()和__builtin_popcount(),在CCS中編譯不能通過,請問,CCS是否有庫支持這兩個函數,多謝!
    發表于 06-21 18:30

    C++教程之函數的遞歸調用

    C++教程之函數的遞歸調用 在執行函數 f 的過程中,又要調用 f 函數本身,稱為函數的遞歸調用;形式上:一個正在執行的
    發表于 05-15 18:00 ?35次下載

    C++課程資料詳細資料合集包括了:面向對象程序設計與C++,算法,函數

    本文檔的主要內容詳細介紹的是C++課程資料資料合集包括了:面向對象程序設計與C++,算法,函數,概述, C++語言基礎,構造數據類型,數據類
    發表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細資料合集包括了:面向<b class='flag-5'>對象</b>程序設計與<b class='flag-5'>C++</b>,算法,<b class='flag-5'>函數</b>等

    如何在中斷C函數中調用C++

    之前,我們在單片機程序開發時都會面對中斷函數。眾所周知的,這個中斷函數肯定是要用C函數來定義的。我在用C++進行程序開發的時候就發現了一個需
    發表于 05-09 18:17 ?0次下載
    如何在中斷<b class='flag-5'>C</b><b class='flag-5'>函數</b>中調用<b class='flag-5'>C++</b>

    C++拷貝構造函數的淺copy及深copy

    C++編譯器會默認提供構造函數;無參構造函數用于定義對象的默認初始化狀態;拷貝構造函數在創建對象
    的頭像 發表于 12-24 15:31 ?763次閱讀

    C++函數模板的概念及意義

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

    C++重載函數學習總結

    函數重載是c++c的一個重要升級;函數重載通過參數列表區分不同的同名函數;extern關鍵字能夠實現c
    的頭像 發表于 12-24 17:10 ?806次閱讀

    C++基礎語法inline 內聯函數

    上節我們分析了C++基礎語法的const,static以及 this 指針,那么這節內容我們來看一下 inline 內聯函數吧! inline 內聯函數 特征 相當于把內聯函數里面的內
    的頭像 發表于 09-09 09:38 ?2159次閱讀

    C++中如何用虛函數實現多態

    01 — C++函數探索 C++是一門面向對象語言,在C++里運行時多態是由虛函數和純虛
    的頭像 發表于 09-29 14:18 ?1711次閱讀

    如何在MPLAB XC16編譯器內建函數

    MPLAB XC16編譯器提供了一系列內建函數,使C語言編程人員可以訪問目前只能通過行內匯編訪問的匯編運算符或機器指令。內建函數名都有一個前綴__builtin_,源代碼用C語言編寫,
    的頭像 發表于 01-22 17:37 ?1640次閱讀
    如何在MPLAB XC16編譯器<b class='flag-5'>內建函數</b>

    函數,C++開發者如何有效利用

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

    深度解析C++中的虛函數

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

    淺析C++執行構造函數編程實例

    C++保證在你調用delete時,先自動調用析構函數(而我們安排在這個函數里面刪除它的法杖、法袍等對象),再刪除對象占用的內存。
    發表于 03-03 15:44 ?293次閱讀

    C++基礎知識函數1

    函數C++ 中的一個重要概念,它可以讓我們將一段代碼封裝起來,然后在需要的時候調用它。C++ 中的函數有以下幾個特點: * 函數
    的頭像 發表于 04-03 10:34 ?587次閱讀

    C++基礎知識函數2

    C++中,我們可以使用inline關鍵字來定義內聯函數。內聯函數是一種特殊的函數,它在編譯時會被直接嵌入到調用它的代碼中,從而避免了函數調
    的頭像 發表于 04-03 10:34 ?549次閱讀
    主站蜘蛛池模板: 色播播影院| 久久综合电影| 啊轻点灬大JI巴又大又粗| japanese幼儿videos| 动漫美女喷水| 国产一卡2卡3卡4卡孕妇网站| 国产精品永久免费视频| 寂寞夜晚视频高清观看免费| 久久久精品3d动漫一区二区三区| 男人边吃奶边挵进去呻吟漫画| 秋霞在线观看视频一区二区三区| 无人区在线日本高清免费| 一本大道手机在线看| WWW国产精品内射老师| 极品内射少妇精品无码视频| 蜜桃传媒视频| 亚洲色欲色欲综合网站| 成人 迅雷下载| 久久这里只有精品1| 天上人间影院久久国产| 19不插片免费视频| 精品国产三级a| 日韩精品熟女一区二区三区中文| 亚洲精品在线播放视频| 国产AV国产精品国产三级在线L| 久见久热 这里只有精品| 如懿传免费观看在线全集| 97在线播放视频| 久久久久伊人| 一个人在线观看视频| 国内一级一级毛片a免费| 午夜理伦片免费| 国产成人AV永久免费观看 | 无码AV精品久久一区二区免费| 97草碰在线视频免费| 久久亚洲精品中文字幕60分钟| 亚洲免费无码中文在线| 黄色天堂在线| 一本之道高清在线观看一区| 久久青青热| 2021国产精品视频一区|