fre*_*low 6 c++ containers iterator non-member-functions c++11
非成员函数模板begin(container)和end(container)C++ 0x的一部分吗?如果是这样,他们居住在哪个头文件中?
是的,但正如swap在不同的地方定义并依赖于ADL,所以是begin和end.'通用'版本定义<iterator>如下:
// 24.6.5, range access:
template <class C> auto begin(C& c) -> decltype(c.begin());
template <class C> auto begin(const C& c) -> decltype(c.begin());
template <class C> auto end(C& c) -> decltype(c.end());
template <class C> auto end(const C& c) -> decltype(c.end());
template <class T, size_t N> T* begin(T (&array)[N]);
template <class T, size_t N> T* end(T (&array)[N]);
Run Code Online (Sandbox Code Playgroud)
另请注意,24.6.5说:
除了是通过纳入的可用
<iterator>头部,任何以下标题被包括在时的24.6.5函数模板是可用的:<array>,<deque>,<forward_list>,<list>,<map>,<regex>,<set>,<string>,<unordered_map>,<unordered_set>,和<vector>.