c++容器(vector|map)中使用函数指针-阿里云开发者社区

开发者社区> 橘子红了呐> 正文

c++容器(vector|map)中使用函数指针

简介:
+关注继续查看
我要动态生成mfc菜单,动态绑定响应命令。
首先把菜单关键词和函数指针绑定在map中,
再通过关键词找到函数来执行。
复制代码
#include "stdafx.h"

#include <vector>
#include <map>
#include <string>

using namespace std;

// 声明一个函数指针
int(*pFunc)(int);
int func1(int nIn){return nIn + 1;}
int func2(int nIn){return nIn + 20;}

typedef int(*pInt)(int);//定义别名才能放在vector中

void main()
{
    pFunc = func1;// 把函数名赋给函数指针
    int n = pFunc(1);
    pFunc = &func2;
    n = pFunc(1);
    //vector<int(*pFun)(int)> v_pFunc;//不能这样定义
    
//
    vector<pInt> v_pInt;
    v_pInt.push_back(func1);
    v_pInt.push_back(func2);
    int i = v_pInt[0](2);
    i = v_pInt[1](2);
    //
    map<string,pInt> map_pInt;
    map_pInt.insert(pair<string,pInt>("key1",func1));
    map_pInt.insert(pair<string,pInt>("key2",func2));
    int j = map_pInt["key1"](3);
    j = map_pInt["key2"](3);
}
复制代码
20121028更正vector可以直接放函数指针类型,没理解到位。
复制代码
//vector只能放类型,不能放函数指针变量名
vector<int(*)(int)> v_pFunc;
v_pFunc.push_back(func1);
v_pFunc.push_back(func2);
int k = v_pFunc[0](5);
k = v_pFunc[1](5);
复制代码
url:http://greatverve.cnblogs.com/archive/2012/10/27/vector-ptr.html



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2012/10/27/vector-ptr.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用容器编排工具docker swarm安装clickhouse多机集群
1.首先需要安装docker最新版,docker 目前自带swarm容器编排工具 2.选中一台机器作为master,执行命令sudo docker  swarm init [options] 3,再需要加入集群的集群上执行此命令   4.
3195 0
xcode使用lldb的python脚本查看WebKit的WTF::String和Vector等基础类
webkit关于gdb的wiki:http://trac.webkit.org/wiki/GDB 它是自带了gdb和lldb的python脚本的,路径分别在 webkit workingcopy/Tools/gdb/webkit.
957 0
使用Java connector消费ABAP系统的函数
使用Java connector消费ABAP系统的函数
9 0
Maven初探-如何发布到Tomcat容器中
写在开始 上一篇文章中有讲到,Maven初探-如何快速入手一个项目 提到如何发布到Jetty容器中,但是大多数小伙伴们还是倾向于使用Tomcat容器。 配置Tomcat pom.xml配置:
1804 0
请问:hive中avg聚合函数会使用到combiner功能吗?
hive avg函数是否可以使用combiner功能
2899 0
借助阿里云ECS实现传统.NET应用容器化(上)
我们都知道.NET Core应用可以跑在Docker上,那.NET Framework 4.x应用呢?借助阿里云ECS主机(Windows Server 2019 with Container版本),一切变得So Easy!
303 0
3404
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载