
C/C++
文章平均质量分 74
bitleef
这个作者很懒,什么都没留下…
展开
-
C++:重载输出运算符<<为什么必须写成非成员函数?
1. 运算符作为成员函数时,其左侧运算对象必须是运算符所属类的一个对象首先明白一个基本概念,对于成员函数,其左侧运算对象必须是运算符所属类的一个对象。也就是说左侧的这个对象必须和运算符必须同属一个类,否则当其他类的对象调用该符号 << 时,在其他类内找不到该符号的成员函数。该概念在C++Primer第五版14.1内解释过:2. 然后基于上述概念可以解释为什么 << 不可以是 成员函数。class bookshop{ public: bookshop}原创 2021-02-03 16:44:01 · 1333 阅读 · 0 评论 -
【C++Primer】泛型编程之定制操作(谓词、lambda表达式、参数绑定bind)
定制操作C++允许我们自己决定算法的操作方式,这就叫做定制操作。通常情况下提供给算法自己定制操作的方式即为谓词。向算法传递函数向算法传递函数是通过谓词完成的,谓词 #F44336:是什么:一个可调用的表达式(如同平常的“<”, “>”, “==”)返回结果:其返回结果是一个能 用作条件的值,类型:标准库算法所使用的谓词可分为两类:一元谓词和二元谓词。例子:为了使排序先按单词的长度,再按字母表中的顺序进行排序,故采用接受一个二元谓词参数的sort版本用这个谓词代替“<”来比较原创 2020-05-12 21:50:56 · 484 阅读 · 0 评论 -
【C++Primer】泛型算法简述
引言初识泛型算法写容器元素的算法算法不检查写操作back_inserter(插入迭代器)拷贝算法重排容器元素的算法定制操作向算法传递函数1、引言泛型算法大多数算法都定义在头文件algorithm中,标准库的头文件numeric中定义了一组数值型算法。泛型算法的作用是通过迭代器间接访问容器,不会执行容器的操作,只运行在迭代器之上,迭代器可以做什么,泛型算法就可以做什么。 迭代器算法不依赖于容器,但算法依赖于元素类型的操作。2、初识泛型算法2.1写容器元素的算法.原创 2020-05-11 17:16:21 · 355 阅读 · 0 评论 -
C语言:数据之作用域、链接属性和存储类型总结
作用域作用域分为4种,文件作用域、函数作用域、代码块作用域和原型作用域。有什么作用呢?从字面就可以知道,变量在只能在某个区域才体现他们的作用。①其他函数体无法的通过其名字访问它们 ②不同作用域可使用相同名字,而不产生冲突。作用域和链接属性关系缺省的变量的存储类型指变量值的内存类型,变量的类型最主要的是关乎该变量何时创建、何时销毁以及它的值能保留多久!存储位置不同造成变量具有不同的特性。...原创 2020-02-05 20:14:24 · 319 阅读 · 0 评论 -
函数原型、函数声明和函数定义之间关系
函数原型int power(int m, int n) 依次是 函数返回类型、函数名和形参列表函数原型不需要函数体,也不需要形式参数的名字,用分号作为原型的结束符。对于形参列表只需要 说明需要几个参数,分别为什么类型即可,因此用以下方式描述也可以。int power(int , int ) 函数声明int power(int base, int n)依次是 函数返回类型、...原创 2019-10-19 11:16:40 · 2354 阅读 · 0 评论 -
C++中“&引用”和“&取地址”的区别
作用上的不同&作为引用是某一变量(目标)的一个别名,必须在定义时候就进行初始化,若不进行初始化则会编译报错。&作为取地址时,用来获取指针指向的元素所在内存中的地址值。用法上的不同和类型在一起的是引用,和变量在一起的是取址(表现形式为:引用在赋值=的左边,而取地址在赋值的右边)int a=3;int &b=a; //引用int *p=&a;...原创 2020-02-05 15:41:37 · 576 阅读 · 0 评论