主要的目的 为了让指针更加简单、安全,引入了begin和end函数,这两个函数和容器中两个同名的成员函数类似。但是由于数组毕竟不是类类型,因此这两个函数不是成员函数。正确的使用形式就是将数组作为他们的参数 int ia[] = {0,1,2,3,4,5,6,7,8,9}; int *beg = begin(ia); int *last = end(ia); begin函数返回指向数组的首元素的指针,end函数返回指向数组尾元素的下一个位置的指针,这两个函数都被定义在iterator的头文件中。使用begin和end函数就可以很好地处理数组中的元素例子:从数组中找到第一个负数 int main(){ int ia[] = {0,1,2,3,-4,5,6,7,8,9,-6}; int *beg = begin(ia); int *last = end(ia); //寻找第一个负值的元素,如果已经检查完毕全部元素就结束循环 while (beg != last){ if(*beg >= 0){ *beg++; }else{ cout << *beg; break; } } return 0; } 一个指针如果指向了某种内置类型数组的尾元素的“下一个位置”,则其具备与vector的end函数返回的与迭代器类似的功能。特别要主要的是,尾后指针不能执行解引用和递增操作。