//① 非 const 修改的容器作为参数,begin() 函数返回的为非 const 类型的迭代器
template <class Container>
auto begin (Container& cont)
//② 传入 const 修饰的容器,begin() 函数返回的为 const 类型的迭代器
template <class Container>
auto begin (const Container& cont)
#include <iostream> // std::cout #include <vector> // std::vector, std::begin, std::end using namespace std; int main() { //创建并初始化 vector 容器 std::vector<int> myvector{ 1,2,3,4,5 }; //调用 begin() 和 end() 函数遍历 myvector 容器 for (auto it = begin(myvector); it != end(myvector); ++it) cout << *it << ' '; return 0; }程序执行结果为:
1 2 3 4 5
程序第 8 行中,begin(myvector) 等同于执行 myvector.begin(),而 end(myvector) 也等同于执行 myvector.end()。
template <class T, size_t N>
T* begin (T(&arr)[N]);
#include <iostream> // std::cout #include <vector> // std::vector, std::begin, std::end using namespace std; int main() { //定义一个普通数组 int arr[] = { 1,2,3,4,5 }; //创建一个空 vector 容器 vector<int> myvector; //将数组中的元素添加到 myvector 容器中存储 for (int *it = begin(arr); it != end(arr); ++it) myvector.push_back(*it); //输出 myvector 容器中存储的元素 for (auto it = myvector.begin(); it != myvector.end(); ++it) cout << *it << ' '; return 0; }程序执行结果为:
1 2 3 4 5
注意程序中第 10 行,这里用整数指针 it 接收 begin(arr) 的返回值,同时该循环会一直循环到 it 指向 arr 数组中最后一个元素之后的位置。
本文链接:http://task.lmcjl.com/news/16167.html