在正式开始复习以前就已经对泛型算法有了些认识,算法说明其实现了一些共同的操作;而泛型则说明其与具体的容器类型和容器元素类型无关。之前在顺序容器中我们已经使用过find算法,接受一个迭代器指明的范围,查找特定的元素。泛型算法的设计基于迭代器,脱离开具体的容器关联,因此泛型算法不会调用容器定义的操作。今天粗略看了看了这部分,大致有个了解,由于类似于C标准库,需要的时候来查就可以了,今天就简单说一说感性认识的部分。
C++标准库定义了许多算法,这些泛型算法都遵循统一的设计模式。一种区分的模式是根据不同算法对容器元素的操作作为标准:比如
--只读算法,不改变元素的值和顺序;
--给指定元素赋新值的算法;
--将一个元素的值移给另一个ie元素的算法;
除了这一种,还可以根据算法函数的形参来区分:
------alg(beg, end, other parms); //beg,end标记输入范围
------alg(beg, end, dst, other parms); //dst标记输出范围的首位置
------alg(beg, end, beg2, other parms); //beg2标记了第二个输入位置,但是没有指明输入结束的位置
------alg(beg, end, beg2, end2, other parms);//两个输入范围段
先写到这里吧,以后需要的时候再补充。
阅读(2805) | 评论(0) | 转发(1) |