[vs 2005]vector双参数构造流程
来源:互联网 发布:游戏多线程优化 编辑:程序博客网 时间:2024/06/05 01:56
源代码:
#include <vector>using namespace std;int main(){vector<int> vec(20, 10);return 1;}
分析:
vector实现中有两个函数,一个是vector(size_type _Count, const _Ty& _Val) ,一个是模板函数vector(_Iter _First, _Iter _Last) 。该例中,它将调用模板函数,因为20和10都是int类型,而size_type是unsigned int,故调用模板函数。
// vector 497template<class _Iter>vector(_Iter _First, _Iter _Last) : _Mybase(){// construct from [_First, _Last)_Construct(_First, _Last, _Iter_cat(_First));}
_Iter_cat类型推导:_Iter_cat<int> --> iterator_traits<int> --> _Int_iterator_tag。
// vector 511template<class _Iter>void _Construct(_Iter _Count, _Iter _Val, _Int_iterator_tag){// initialize with _Count * _Valsize_type _Size = (size_type)_Count;_Construct_n(_Size, (_Ty)_Val);}
后略。。。
第二种情况:
#include <vector>using namespace std;int main(){vector<int> vec((size_t)20, 10);return 1;}
分析,这个构造函数将不再调用模板函数:
// vector 473vector(size_type _Count, const _Ty& _Val) : _Mybase(){// construct from _Count * _Val_Construct_n(_Count, _Val);}
- [vs 2005]vector双参数构造流程
- [vs 2005]vector的单参数构造流程
- [vs 2005]vector的默认构造流程
- Distributional Vector VS. Distributed Vector
- vector<> VS <> deque<> VS list<>
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- ArrayList vs. LinkedList vs. Vector
- Vector::构造,复制构造,析构
- 通讯录加入arraylist<HashMap<String,Object>>demo
- js 面向对象 和方法重载
- struct 内存对齐
- [Object-C语言随笔之四]创建视图并绘制简单图形
- JMX指南(一)
- [vs 2005]vector双参数构造流程
- Kinect for Windows SDK开发初体验(二)操作Camera
- [Android开发从零开始].4.TextView控件学习
- #ifdef #ifndef #if 的用法
- 搭建GCC+JLINK开发调试环境(裸机调试)
- 信号(Signal)与槽(Slot)-Qt中的典型机制
- python为啥米helloworld都不行尼
- Oracle 11g client的配置
- 域内批量分发注册表设置