要获取指向数组第一个和最后一个元素的指针,我们可以使用 begin 和 end 函数:https : //stackoverflow.com/a/14595314/5761266
但是,我注意到如果省略#include <iterator>. 为什么会出现这种情况,因为这些函数是在<iterator>标题中定义的?
我使用的唯一标题是<iostream>.
我使用的程序:http : //coliru.stacked-crooked.com/a/28b2b449aae19a47
函数的返回类型必须事先完全定义。这意味着迭代器头必须包含在任何定义begin()andend()方法并返回完整迭代器对象* 的可迭代对象中。
这意味着,只要您使用标准容器(例如std::vector,std::map,std::list等)的标准库的头文件必须#include <iterator>某处之前begin()和end()方法的声明。
因此你不需要#include <iterator>你自己,因为通过这样做#include <vector>(例如)你也会自动包含 iterator.h 。
请记住,当您#include创建头文件时,该头文件中包含的任何其他头文件也会自动包含#include在您的代码文件中。
*除非迭代器类型是完全自定义的并且不使用标准的迭代器层次类别。