空间的析构与构造

https://www.starpool.cnSTL对destory()函数进行了重载,泛华版本传入的是两个迭代器模板(template<class ForwardIterator>),特化版本是传入两个char*或者wchar*类型的指针。星池科技 2.所以当destory() 传入两个char*或者wchar*类型的指针时,析构函数什么都不做。3.当传入其他类型,如迭代器或者其他类型的指针时,就会调用_destory()函数,此函数会进行一个(特别的)操作:利用迭代器中的type_traits判断传入的迭代器所指向的元素类型的has_trivial_desturctor.STL allocator将上述两阶段操作区分开来。内存配置由alloc::allocator()负责,内存释放操作由alloc::deallocator()负责;对象构造由::constructor()负责,对象析构由::destroy()负责。 再根据特性的不同分别对不同特性的对象调用相应的方法。https://www.starpool.cn 在第二版本中,STL会分析迭代器所指对象的has_trivial_destructor特性的类型(只有两种:true_type和false_type),如果是true_type,STL就什么都不做;如果是false_type,就会调用每个对象的析构函数来销毁这组对象。 这两个函数不断调用“内存不足处理函数”,直到获得足够内存为止。如果用户没有传递“内存不足处理函数”,会抛出__THROW_BAD_ALLOC异常。 
#Java求助#
全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
12-03 18:53
海南大学 Java
华为 Java开发 25K*16
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务