1. 程式人生 > >vector中存放函式指標

vector中存放函式指標

1編寫4個函式,分別對兩個int值執行加、減、乘、除運算使用vector物件中儲存只想這些函式的指標。

#include<iostream>
#include<vector>
using namespace std;

int fun1(int x,int y);
int fun2(int x,int y);
int fun3(int x,int y);
int fun4(int x,int y);
int main()
{
    vector<int(*)(int,int)> v;//vector<decltype(fun1)*> v;
    v.push_back(fun1);
    v.push_back(fun2);
    v.push_back(fun3);
    v.push_back(fun4);
    cout<< v[0](1,2)<<endl;
    cout<<v[1](1,2)<<endl;
    cout<<v[2](1,2)<<endl;
    cout<<v[3](1,2)<<endl;
    return 0;
}
int fun1(int x,int y)
{
    return (x+y);
}
int fun2(int x,int y)
{
    return (x-y);
}
int fun3(int x,int y)
{
    return (x*y);
}
int fun4(int x,int y)
{
    return (x/y);
}
執行:

[[email protected] C++ primer]# vim func.cpp
[[email protected] C++ primer]# g++ -o func func.cpp -std=c++11
[[email protected] C++ primer]# ./func
3
-1
2
0



相關推薦

vector存放函式指標

1編寫4個函式,分別對兩個int值執行加、減、乘、除運算使用vector物件中儲存只想這些函式的指標。 #include<iostream> #include<vector> using namespace std; int fun1(int x

在unordered_map存放函式指標

在文章C++類裡面使用函式指標 和對於C++函式指標的理解 兩篇文章中已經對函式指標有一定的說明,這裡介紹一下在map中存放指標。 其實在map中存放指標的想法的得來是因為在函式中的if--else語句太多,根據不同的條件執行不同的語句,然後就想為什麼不把判斷

結構體使用函式指標

 struct kobj _ type  {  void (*release)(struct kobject *);  struct sysfs _ ops * sysfs _ ops;  struct attribute ** default _

c/c++函式指標指標函式

定義 1.指標函式,本質是函式,返回值為指標,形如,int *pfun(int, int),由於“*”的優先順序低於“()”的優先順序,所以等同於int *(pfun(int, int)) 2.函式指標

C++函式指標

1. 普通函式指標 typedef double(*ptrFunc)(int, int); double add(int a, int b); double sub(int a, int b); double mul(int a, int b); double divf(int

為什麼 C++ 成員函式指標是 16 位元組?

當我們討論指標時,通常假設它是一種可以用 void * 指標來表示的東西,在 x86_64 平臺下是 8 個位元組大小。例如,下面是來自 維基百科中關於 x86_64 的文章 的摘錄: Pushes and pops on the stack are always in 8-byte strides

向量vector 主要函式的使用

一、vector用於實現陣列的功能,相當於在陣列的基礎上封裝了一些常用的功能。   vector的主要函式 函式名稱 功能 push_back 在尾部新增一個元素

c++函式指標和類成員函式指標

// // main.cpp // Demo // // Created by 杜國超 on 16/12/28. // Copyright © 2016年 杜國超. All rights reserved. // #include using namespace std; class MYCla

C語言函式指標

Q:函式指標是什麼意思? A:例如一個指標指向int變數,那麼這個指標就是儲存這個int變數在記憶體中儲存的地址。同理,函式指標就是指向一個函式的指標,那麼這個指標就是儲存這個函式在記憶體中儲存的起始

C++函式指標函式物件總結

篇一、函式指標函式指標:是指向函式的指標變數,在C編譯時,每一個函式都有一個入口地址,那麼這個指向這個函式的函式指標便指向這個地址。函式指標的用途是很大的,主要有兩個作用:用作呼叫函式和做函式的引數。函式指標的宣告方法:資料型別標誌符 (指標變數名) (形參列表);一般函式的宣告為:int func ( in

C語言結構體函式指標函式

1、函式指標 一般的函式指標可以這麼定義: int(*func)(int,int); 表示一個指向含有兩個int引數並且返回值是int形式的任何一個函式指標. 假如存在這樣的一個函式: int add2(int x,int y) { return x+y;

vector存放自定義類 ,對類的要求

vector中存放自定義類的前提是: 自定義的類必須有預設建構函式。因為vector會呼叫預設建構函式來初始化元素的物件。 那必須要明確:編譯器什麼時候隱式宣告預設建構函式? 有兩個條件: · 該類沒有顯式宣告任何建構函式。--既然你都定義了,系統就不給你生成了。 · 資料

C typedef 函式指標的使用

型別定義的語法可以歸結為一句話:只要在變數定義前面加上typedef,就成了型別定義。這兒的原本應該是變數的東西,就成為了型別。 char(&yes)[1]; 定義一個引用 一元字元陣列 的變數,(和char& yes類似,但此不是陣列) char(&no)[2]; 定義一個2個

關於stl::vector儲存帶指標型別成員的結構體指標

最近用到vector中儲存結構體: struct sProc { // 程序ID int pid; // 程序狀態 int stat; // 狀態為0次數 int count; char *path; sProc() { pid = -1; stat = 0; cou

std::vectorerase函式的用法

 (已除錯) //std::vector, erase函式的用法 void VecEraseFun() {  std::vector<int>  VecInt;  for (size_t i = 1; i <= 20; i++)  {   VecIn

C結構體函式指標函式

1. 函式指標 一般的函式指標可以這麼定義:int(*func)(int,int); 表示一個指向含有兩個int引數並且返回值是int形式的任何一個函式指標. 假如存在這樣的一個函式:int add2(int x,int y){return x+y;}那麼在實際使用指標func時可以這樣實現:func=&

C++函式指標函式物件總結(轉)

篇一、函式指標函式指標:是指向函式的指標變數,在C編譯時,每一個函式都有一個入口地址,那麼這個指向這個函式的函式指標便指向這個地址。函式指標的用途是很大的,主要有兩個作用:用作呼叫函式和做函式的引數。函式指標的宣告方法:資料型別標誌符 (指標變數名) (形參列表);一般函式的宣告為: int func ( i

結構體定義函式指標

結構體指標變數的定義,定義結構體變數的一般形式如下: 形式1:先定義結構體型別,再定義變數 struct結構體識別符號 { 成員變數列表;… }; struct 結構體識別符號 *指標變數名; 變數初始化一:struct結構體識別符號 變數名={初始化值1,初始化值2,…

輸入5門學科的成績,編寫程式求其平均分。要求用函式完成,科目存放指標申請的動態空間

#include<iostream> using namespace std; double pj(double pa[]);//定義一個計算平均值的函式; int main() { double *pa=new double[5];//分配五個記憶體空間; int i; do

vue事件監聽函式on的this指標

使用eventBus在兩個元件A,B之間通訊: //定義全域性eventBus用於事件傳遞 var bus = new Vue(); //A元件 var A = Vue.component({ ... data:{ dataA:1, }, //在鉤子函式中將監聽_even