如何输出list容器里的所有元素
怎么输出list容器里的所有元素?发现list.begin()+2就会报错,是不是list的迭代器不能用加法?[解决办法]迭代
怎么输出list容器里的所有元素?
发现list.begin()+2就会报错,是不是list的迭代器不能用加法?
[解决办法]
迭代器能用加法。但一般不是像你这样使用。如果要遍历list中的所有元素,可以按如下方式:
// 其中CList为list的类型
for ( CList::iterator it=list.being(); it!=list.end(); ++it)
{
......
}
[解决办法]list不能像vector那样使用迭代器的加法,因为加法在list里实现得很慢,为了不让你认为list加法是很好用的,于是写list的人就禁止了这样的用法。输出的话,见上楼。
[解决办法]是不能这样用。。因为iterator没有重载operator+,只重载了operator++。。。
[解决办法]只有随机迭代器才支持。list的迭代器是双向迭代器。可以看看这里:http://www.cplusplus.com/reference/iterator/
[解决办法]coyp( std::list.begin(), std::list.end(), std::ostream_iterator< list的元素类型 >( std::cout , "\n" );
list的迭代器是不能使用整数加减法的,因为list的迭代器不是随机迭代器,只是双向迭代器;此外也不能进行除==和!=之外的比较。
[解决办法]即便是这样,也会存在vector。
表现一致,内在也有差别。
[解决办法]依次遍历吧。