什么是.begin()和.end()?

时间:2015-08-20 18:36:18

标签: c++ arrays std stdarray

在C ++库数组中,在哪些情况下,拥有.begin().end()成员函数很有用?

在cplusplus.com上,示例用法是遍历数组:

for ( auto it = myarray.begin(); it != myarray.end(); ++it )

但是

for (int i = 0; i < myarray.size(); i++)

可用于此。

4 个答案:

答案 0 :(得分:26)

InitializeComponent()begin()返回迭代器。迭代器提供统一的语法来访问不同类型的容器。乍一看,它们看起来像是遍历一个简单的数组,但考虑到您可以编写相同的代码来遍历列表或地图。

这种对各种容器的统一访问将允许您编写适用于所有容器的算法,而无需了解其内部结构。从开始到结束的for循环只是一个更大的马赛克中的第一块。只需查看standard algorithms列表即可欣赏这种简单抽象的强大功能。

答案 1 :(得分:10)

标准容器的重点是能够更改它们并使用相同的语法。如果您有链接列表,则第一种语法仍然有效。

它也相当于一个指针。我是一个索引,所以myarray [i]比它慢一点。

答案 2 :(得分:7)

除了与其他容器通用外,shell_exec('python /home/forge/default/public/test.py http://csgo.steamanalyst.com/id/195/XM1014-GRASSLAND-WELL-WORN'); begin范围

非常有用
end

答案 3 :(得分:0)

现在尝试迭代链表。唯一有效的方法是从一个项目迭代到下一个项目,直到你到达终点。