在C ++中定义的begin()和end()函数在哪里?

时间:2016-02-25 07:03:55

标签: c++ iterator

在cppreference.com中,它指出begin()end()函数在头文件< iterator >中定义。但我仍然可以使用begin()end()函数,而不包含< iterator >标题。我想知道为什么?是因为我使用;

using namespace std;

所以包括在内?

2 个答案:

答案 0 :(得分:9)

阅读same page上的说明:

  

除了包含在<iterator>中之外,如果包含以下任何标头,std::begin保证可用<array><deque><forward_list> },<list><map><regex><set><string><unordered_map><unordered_set><vector>

除了这些标题列表之外,std::begin也可能包含在其他标题中。

答案 1 :(得分:1)

不,using namespace xxx不包含任何头文件。这只表示您可以写begin()而不是std::begin()。必须通过您在.cpp中包含的其他标题包含<iterator>标题。