迭代器函数 | 功能 |
---|---|
begin() | 返回指向容器中第一个元素的双向迭代器(正向迭代器)。 |
end() | 返回指向容器中最后一个元素所在位置的下一个位置的双向迭代器。(正向迭代器)。 |
rbegin() | 返回指向最后一个元素的反向双向迭代器。 |
rend() | 返回指向第一个元素所在位置前一个位置的反向双向迭代器。 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,正向迭代器增加了 const 属性,即不能用于修改元素。 |
cend() | 和 end() 功能相同,只不过在其基础上,正向迭代器增加了 const 属性,即不能用于修改元素。 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,反向迭代器增加了 const 属性,即不能用于修改元素。 |
crend() | 和 rend() 功能相同,只不过在其基础上,反向迭代器增加了 const 属性,即不能用于修改元素。 |
图 2 list 容器迭代器的功能示意图
#include <iostream> #include <list> using namespace std; int main() { //创建 list 容器 std::list<char> values{'h','t','t','p',':','/','/','c','.','b','i','a','n','c','h','e','n','g','.','n','e','t'}; //使用begin()/end()迭代器函数对输出list容器中的元素 for (std::list<char>::iterator it = values.begin(); it != values.end(); ++it) { std::cout << *it; } cout << endl; //使用 rbegin()/rend()迭代器函数输出 lsit 容器中的元素 for (std::list<char>::reverse_iterator it = values.rbegin(); it != values.rend();++it) { std::cout << *it; } return 0; }输出结果为:
http://task.lmcjl.com
ten.gnehcnaib.c//:ptth
#include <iostream> #include <list> using namespace std; int main() { //创建 list 容器 std::list<char> values{'h','t','t','p',':','/','/','c','.','b','i','a','n','c','h','e','n','g','.','n','e','t'}; //创建 begin 和 end 迭代器 std::list<char>::iterator begin = values.begin(); std::list<char>::iterator end = values.end(); //头部和尾部插入字符 '1' values.insert(begin, '1'); values.insert(end, '1'); while (begin != end) { std::cout << *begin; ++begin; } return 0; }运行结果为:
http://task.lmcjl.com1
可以看到,在进行插入操作之后,仍使用先前创建的迭代器遍历容器,虽然程序不会出错,但由于插入位置的不同,可能会遗漏新插入的元素。
本文链接:http://task.lmcjl.com/news/14401.html