C++中pair的具体用法
来源:互联网 发布:淘宝男鞋店推荐 编辑:程序博客网 时间:2024/06/05 19:22
pair的类型:
pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。
pair<string,int> p;
pair<int ,int > p;
pair<double,int> p;
都可以。。。
应用:如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就可以使用 c++ 自带的pair ,返回一个pair,其中带有两个值。除了返回值的应用,在一个对象有多个属性的时候 ,一般自己写一个struct ,如果就是两个属性的话,就可以用pair 进行操作。。。
应用pair 可以省的自己写一个struct 。。。如果有三个属性的话,其实也是可以用的pair 的 ,极端的写法 pair <int ,pair<int ,int > >
写法极端。(后边的两个 > > 要有空格,否则就会是 >> 位移运算符)
makr_pair:
pair<int ,int >p (5,6);
pair<int ,int > p1= make_pair(5,6);
pair<string,double> p2 ("aa",5.0);
pair <string ,double> p3 = make_pair("aa",5.0);
有这两种写法来生成一个pair。
如何取得pair的值呢。。
每个pair 都有两个属性值 first 和second
cout<<p1.first<<p1.second;
注意是属性值而不是方法。
(补充:以下是网上搜的)
由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:
typedef pair<string, string> author;
author pro("May", "Lily");
author joye("James", "Joyce");
受以上的启发在写代码过程中觉得
typedef vector<int>sun;
vector<sun>q;
vector<int>b;
for(int i = 0; i < 5; i++)
{
b.push_back(i);
}
q.push_back(b);
实则相当于两个vector的操作
opencv回调函数中鼠标响应cvSetMouseCallback函数,绘制矩形
首先是回调函数:
(摘自百度百科)回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
机制如下:
- 定义一个回调函数
- 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者
- 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理
这么做的意义就在于可以把调用者和被调用者分开。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。
接下来就是opencv中cvSetMouseCallback的理解和应用:
void cvSetMouseCallback(const char* window_name, CvMouseCallback on_mouse, void* param=NULL );
window_name 回调函数需要注册到的 窗口名字,即产生事件的窗口。
on_mouse 指定窗口里每次鼠标事件发生的时候,被调用的函数指针,回调函数。
第三个参数用来传递额外的信息给前面提到的void* param。
这个函数的原型应该为 void Foo(int event, int x, int y, int flags, void* param);
其中
event是 CV_EVENT_*变量之一, x和y是鼠标指针在图像坐标系的坐标(不是窗口坐标系),
flags是CV_EVENT_FLAG的组合,param是用户定义的传递到cvSetMouseCallback函数调用的参数。
param 用户定义的传递到回调函数的参数。
放代码
- C++中pair的具体用法
- c++pair的用法
- C++pair的用法
- C++中pair的用法
- C++中pair的用法
- C++中 pair 的用法
- C++中pair的用法
- STL中pair的用法
- c++STL pair的基本用法
- c++pair基本用法
- stl中pair容器的用法
- C/C++ 中const 的具体作用和用法
- C++中pair用法
- 关于Pair的用法
- C++ pair的用法
- C++ pair的用法
- pair的用法
- C++ pair的用法
- ssh框架登录注册
- HDFS Commands
- Apache http2.4.27解压版环境配置问题总结(win10)
- 利用mybatis-generator自动生成代码
- 如何查看apk的VersionCode、VersionName等版本信息
- C++中pair的具体用法
- vue 用法
- Java面试10|数据库相关
- css控制多行文本显示省略号
- 注册页面图片验证+手机验证
- HDU
- Android shell 命令总结
- 欢迎使用CSDN-markdown编辑器
- [thinkPHP5项目实战_02]命名空间的定义