箭头函数与普通函数的区别,函数与映射的区别
一、函数与映射的概念的区别
函数是一种特殊的映射,它要求两个集合中的元素必须是数,而映射中两个集合的元素是任意的数学对象。
1、映射的范围要比函数的范围广。
2、映射的定义:对于A和B两个非空集合,给出一个对应关系f,s.t.任意的a∈A,在B中存在且存在一个b与a对应。则f为A到B的函数,表示成f:A→B
3、函数的定义:设D?R,则f:D→R为定义为D上的函数,也就是y=f(x)。x为自变量,y为因变量,D为定义域。
4、从定义中就可以看出映射对应的是两个集合,而函数对应的则是两个数集。
函数和映射都是从一个集合到另一个集合的关系,但是它们之间有一些不同:
定义方式:函数通常是显式定义的,例如通过一个公式或算法。而映射通常是隐式定义的,例如通过一个图或一组规则。
符号表示:函数通常使用单个字母或一组字母表示,例如f(x)或g(x,y)。而映射通常使用箭头或函数图像表示,例如f:A→B或f(A)。
定义域和值域:函数具有一个定义域(输入集合)和一个值域(输出集合),对于给定的输入,函数会有唯一的输出。而映射也有一个定义域和值域,但不要求对于给定的输入,映射必须有唯一的输出。
范围:函数是集合的一个子集,其中每个输入都对应一个唯一的输出。而映射可以是一对多,多对一或一对一的。
目的:函数通常用于描述数量之间的关系,例如数学和物理方程。映射通常用于描述对象之间的关系,例如计算机科学中的数据结构和算法。
二、函数的三种返回方式
1.无返回值的函数
只有返回类型是void的函数。
可以不使用return语句,会隐式地执行。若想在中间位置提前退出,可以使用return语句。可以使用return语句返回另一个返回void类型的函数。
2.有返回值的函数
在含有return语句的循环后面应该也有一条return语句。
(1)值是如何被返回的:
返回一个值的方式和初始化一个变量或形参的方式完全一样:返回值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。
(2)不要返回局部对象的引用或指针:
函数完成后,它所占的存储空间也随之被释放掉,因此函数终止意味这局部变量的引用将指向不再有效的内存区域。
想要确保返回值安全,我们不妨提问:引用所引的是在函数之前存在的哪一个对象。
(3)调用运算符的优先级与点运算符和箭头运算符相同,如果函数返回指针、引用或类的对象,可以使用函数调用的结果访问结果对象的成员。
(4)调用一个返回引用的函数得到左值,其他返回类型得到右值。
(5)函数可以返回花括号包围的值的列表,用来对表示函数返回的临时量进行初始化。
(6)主函数main的返回值:
允许没有return语句直接结束,编译器将隐式地插入一条返回0的return语句。
main函数的返回值可以看作是状态指示器,返回0表示执行成功,返回其他值表示执行失败,其中非零值的具体含义依机器而定。可以使用cstdlib头文件中定义的两个预处理变量,EXIT_FAILURE和EXIT_SUCCESS分别表示成功和失败。
(7)函数可以调用自身,成为递归函数。在递归函数中,一定有某条路径是不包含递归调用的,否则函数将不断地调用它自身知道程序栈空间耗尽为止。
3.返回数组指针:
因为数组不能被拷贝,所以函数不能返回数组,但可以返回数组的指针或引用。
int(*func(inti)[10];//声明一个返回指向大小为10的整型数组指针的函数
1
1
简化的方式有三种:
(1)使用类型别名;
(2)使用尾置返回类型;
(3)使用decltype,注意decltype不负责将数组类型转换成指针类型。
三、函数与映射的区别
1.定义方式不同:函数是一种将一个集合的元素映射到另一个集合的元素的规则,通常用公式表示;映射是一种把一个集合的元素对应到另一个集合的元素的方法,通常用箭头表示。
2.用途不同:函数通常用于描述自变量和因变量之间的关系,例如数学中的函数可以表示为y=f(x)的形式;映射则用于表示一个集合中的元素如何对应到另一个集合中的元素。
3.定义域和值域的区别:函数有定义域和值域,定义域是自变量的取值范围,值域是函数的输出值的取值范围;映射则只有定义域,没有值域。
4.映射可以是多对一的,而函数必须是一对一的或一对多的。
5.函数可以有特殊的性质,如可导、连续等,而映射则没有这些性质。