前言 C++常用的STL及方法 (上) : C++常用的 STL 及方法 (中上) : C++常用的 STL 及方法 (中) : C++常用的 STL 及方法 (中下) : 目录 STL -- 泛型算法 <algorithm> max() -- 求最大值 min() -- 求最小值 abs() -- ...
分类:
编程语言 时间:
2021-03-17 14:01:43
阅读次数:
0
练习1,1从一个简单程序开始1,将string头文件注释掉,重新编译这个程序,会发生什么事?目前还没有发现会发生什么事。2,将usingnamespacestd注释掉,重新编译,会发生什么事?3,将函数名main()改为my_main(),然后重新编译,有什么结果?练习1.2将上述程序的内容进行扩充(1)要求用户同时输入名字(firstname)和姓氏(lastname);(2)修改输出结果,同时
分类:
编程语言 时间:
2020-11-21 12:00:55
阅读次数:
4
关于 fill 和fill_n函数是C++ Primer第十二章泛型算法部分内容,并把它们称为生成和变异算法,也就是说这两个函数只能对输入范围内已存在的元素进行操作。如果试图对空容器进行fill_n操作,会导致严重的运行错误,所以在对元素进行写入操作时要检查目标的大小是否足以存储要写入的元素。 fi ...
分类:
编程语言 时间:
2020-10-16 10:46:52
阅读次数:
20
(1)大多数算法都定义在头文件algorithm中。标准库还在头文件numeric中定义了一组数值泛型算法。 1 int ia[] = { 27, 23, 45, 56 }; 2 int val = 56; 3 int* result = find(begin(ia), end(ia), val); ...
分类:
编程语言 时间:
2020-04-24 18:43:38
阅读次数:
73
泛型算法本身不会执行容器的操作,它们只会运行于迭代器之上,执行迭代器的操作。算法永远不会改变底层容器的大小,算法可能会该百年容器中元素的值,也可能在容器中移动元素,但永远不会直接添加或删除元素。迭代器可以完成向容器添加元素的效果,但宣发自身永远不会做这样的操作。 1.find 例:auto resu ...
分类:
其他好文 时间:
2020-04-24 00:58:36
阅读次数:
70
函数适配器(function adapter):通过不同函数适配器的绑定,组合和修饰能力,可以实现强大的功能,配合STL泛型算法完成复杂功能。 绑定(bind) bind1st函数有两个参数,被绑定参数的仿函数__fn,以及待绑定到仿函数上的参数值__x。在函数中构建并返回了binder1st对象, ...
分类:
其他好文 时间:
2019-12-01 20:28:51
阅读次数:
88
大多数算法定义在头文件algorithm中,在头文件numeric中定义了数值泛型算法。 以find算法为例:在容器的两个迭代器指定的范围内遍历,查找特定值。 1 int val=44; 2 auto result=find(ivec.begin(),ivec.end(),val); 3 cout< ...
分类:
编程语言 时间:
2019-09-20 14:07:09
阅读次数:
114
月考之后,再写一篇 模板是C++中十分重要的部分,也是体现C++相较于C语言的优势之处。 由模板延伸出来了一种极其强大的算法——泛型算法(无论类型是什么,程序都可以通过几个类型的共有的,通用的使用方式来执行一些操作),这种强大的算法后面会介绍。 模板的一个例子: 也就是说,模板可以使用在类和函数上面 ...
分类:
编程语言 时间:
2019-04-05 12:46:56
阅读次数:
201
std中定义了很好几种顺序容器,它们自身也提供了一些操作,但是还有很多算法,容器本身没有提供。 而在algorithm头文件中,提供了许多算法,适用了大多数顺序容器。与c++11相比,很多函数在 c++17与c++20又改变了很多,下面内容基于c++11去简单介绍. 参考文献: https://en ...
分类:
编程语言 时间:
2018-11-08 19:14:02
阅读次数:
193