jor*_*gez 2 c++ insert-iterator
在下面的代码中,我创建了一个insert_iterator而不包含迭代器头.怎么可能这个编译?我是c/c ++的新手,所以这可能会有一个很明显的解释.
#include <list>
//#include <iterator>
int main()
{
std::list<int> mylist(10,1);
std::insert_iterator<std::list<int> > it(mylist,mylist.begin());
return(0);
}
Run Code Online (Sandbox Code Playgroud)
它恰好编译,因为<list>在你的情况下,其他一些标题也在拉动<iterator>.这可能适用于一个实现,但在另一个实现上失败,甚至在当前库实现的下一个版本上失败.
您应该始终包含定义您使用的东西的标头,以确保它将在任何地方编译.请注意,有一些标准标头的保证由其他标准标头提取,但我认为这不是其中一个例外.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |