insert()?函數有以下三種用法:?
在指定位置loc前插入值為val的元素,返回指向這個元素的迭代器,?
在指定位置loc前插入num個值為val的元素?
在指定位置loc前插入區間[start,?end)的所有元素?.,查看源碼返回元素的大小個數
?
原函數
?? ?iterator insert(const_iterator _Where, const _Ty& _Val)
?? ??? ?{?? ?// insert _Val at _Where
?? ??? ?return (_Insert_n(_Where, (size_type)1, _Val));
?? ??? ?}
iterator insert(const_iterator _Where, size_type _Count,
?? ??? ?const _Ty& _Val)
?? ??? ?{?? ?// insert _Count * _Val at _Where
?? ??? ?return (_Insert_n(_Where, _Count, _Val));
}
template<class _Iter>
?? ??? ?typename enable_if<_Is_iterator<_Iter>::value,
?? ??? ??? ?iterator>::type
?? ??? ?insert(const_iterator _Where, _Iter _First, _Iter _Last)
?? ??? ?{?? ?//?insert [_First, _Last) at _Where
?? ??? ?size_type _Off = _VIPTR(_Where) - this->_Myfirst();
?? ??? ?_Insert(_Where, _First, _Last, _Iter_cat_t<_Iter>());
?? ??? ?return (begin() + _Off);
?? ??? ?}
template<class _Iter>
?? ??? ?void _Insert(const_iterator _Where,
?? ??? ??? ?_Iter _First, _Iter _Last,
?? ??? ??? ??? ?input_iterator_tag)
?? ??? ?{?? ?// insert [_First, _Last) at _Where, input iterators
?? ??? ?size_type _Off = _VIPTR(_Where) - this->_Myfirst();
?
?
?