对泛型算法的几点注意

来源:互联网 发布:linux 清空tmp 编辑:程序博客网 时间:2024/04/30 13:25

  标准库为我们定义了一套函数,因为它们实现了共同的操作,所以称之为算法;而泛型指的是他们可以作用在多种容器上,而不必考虑类型!

1、泛型算法的本质,决定了他的参数范围必须是迭代器,而且对应不同的算法,需要不同种类的迭代器;

比如:sort函数的迭代器就必须是双向迭代器,如果比随即访问迭代器的等级低是不允许的!

2、对于之前两章的8种容器:其中vector、deque、string这三种容器的迭代器都是随机访问迭代器,list、map、set、mutilmap、mutilset这五种容器的迭代器都是双向迭代器;

3、对于list容器来说,他是不能使用参数范围是随机访问迭代器的算法的;而且在大多数情况下,我们都是使用list容器自身实现的与泛型无关的一套算法;

4、根据算法对元素的操作来划分,其实无非有三种算法:一是,只读算法,不改变元素的值和顺序;二是,给指定的元素赋新值的算法;三是,将一个元素的值移给另一个元素的算法;