uninitialized_fill与fill的区别
来源:互联网 发布:linux新加硬盘不显示 编辑:程序博客网 时间:2024/04/30 06:25
uninitialized_fill与fill的区别
在STL源码中可以经常看到uninitialized_fill与fill函数.刚开始不明白到底什么时候
用uninitialized_fill还是fill函数.后来模仿写STL源码时,才明白了,这样做一个简单的说明
希望对初学者有所帮助.
先看看两个函数功能:
1.fill是直接对每个元素进行填充value.
2.uninitialized_fill(未初始化填充) 是要根据value的类型来判断使用哪一种方式填充,
如果是POD类型(就是内置类型或普通结构与类(没有指针的成员数据)),就直接调用fill函数.
不是POD类型时,就要遍历每个元素进行构造(调用construct函数).为什么呢?
那是因为*first = value; 类的赋值操作符必须要*first的对象已经生成.
uninitialized_fill一般都是用于未初化填充,也就是说内存区间根本没有对象可言.
此外相关的还有两个: uninitialized_fill_n, uninitialized_copy.原理一样
uninitialized_fill与fill的源码:(模仿sgi stl)
这是vector中reserve函数
- uninitialized_fill与fill的区别
- 【C++】fill函数,fill与memset函数的区别
- 【C++】fill函数,fill与memset函数的区别
- 【C++】fill函数,fill与memset函数的区别
- c++ fill函数,fill与memset函数的区别
- 【C++】fill函数,fill与memset与fill_n函数的区别
- fill()和fill-n()函数用法及与memset的区别
- C++中fill()、fill_n()与memset()函数的区别
- fill和memset的区别
- memset和fill的区别
- fill和fill_n函数的应用 / fill_n与generate_n的区别
- C/C++ 之 fill ()的运用及与memset()的区别
- C/C++ 中 fill ( ) 的运用及与memset ( ) 的区别
- match parent 和 fill parent的区别
- C++中的fill和memset的区别
- fill函数 和 memset 函数的区别
- lower_bound与upper_bound还有fill的使用
- fill-parent、match-parent与wrap-content区别
- testng学习日记-10/21
- PHP 开发中数据库及其相关软件的选型考虑
- STL为什么要提供_Int_iterator_tag
- ASP.net c# 日期转化[转]
- Win32 OpenGL编程(6) 踏入3D世界
- uninitialized_fill与fill的区别
- 菜鸟学习OGRE和天龙八部之九: AXP档案的直接载入搞定
- Ogre3D 实现角色换装
- OIS 缓冲与非缓冲输入方式
- java 实现文件下载的时候,避免浏览器自动打开文件,而是出现另存为对话框
- white paper___sun cloud(2)
- 云测试
- Advanced English Note—AD030602.wma
- pku 2978 Colored stones(枚举+DP)