STL iterator的疑问# Programming - 葵花宝典
g*s
1 楼
手头书不少,几本经典的都有了。但是看来看去还是对STL里的概念很不清楚,觉得这
些描述太抽象。谁能简明扼要地总结一下啊?
比如iterator,我的理解是推广的指针,是指向其他对象的对象。那么指针上的所有操
作iterator都支持吗?另外iterator又被分成input iterator, output iterator等等
。他们和iterator class之间是继承关系吗?input iterator和output iterator号称
只支持一小部分指针操作。另外书上说使用output iterator的算法必须是单遍算法,
这个又是什么意思?
下面这个例子将vs填上5个"hello"。但是为啥要用这个output iterator back_
inserter?直接vs.end()或者vs.last()不行吗?或者直接循环5次push_back。引入这
么细分的算法意义何在呢?
std::vector vs;
std::fill_n(std::back_inserter(vs), 5, "hello");
些描述太抽象。谁能简明扼要地总结一下啊?
比如iterator,我的理解是推广的指针,是指向其他对象的对象。那么指针上的所有操
作iterator都支持吗?另外iterator又被分成input iterator, output iterator等等
。他们和iterator class之间是继承关系吗?input iterator和output iterator号称
只支持一小部分指针操作。另外书上说使用output iterator的算法必须是单遍算法,
这个又是什么意思?
下面这个例子将vs填上5个"hello"。但是为啥要用这个output iterator back_
inserter?直接vs.end()或者vs.last()不行吗?或者直接循环5次push_back。引入这
么细分的算法意义何在呢?
std::vector
std::fill_n(std::back_inserter(vs), 5, "hello");