空间的析构与构造
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求助#
#Java求助#