⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string

📁 本系统采用VC开发.可实现点云数据的处理,图像缩放,生成曲面.
💻
📖 第 1 页 / 共 5 页
字号:
  }  else {    _Traits::copy(_M_start, __f, size());    append(__f + size(), __l);  }  return *this;}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::iterator basic_string<_CharT,_Traits,_Alloc>  ::_M_insert_aux(basic_string<_CharT,_Traits,_Alloc>::iterator __p,                  _CharT __c){  iterator __new_pos = __p;  if (_M_finish + 1 < _M_end_of_storage) {    construct(_M_finish + 1);    _Traits::move(__p + 1, __p, _M_finish - __p);    _Traits::assign(*__p, __c);    ++_M_finish;  }  else {    const size_type __old_len = size();    const size_type __len = __old_len +                            max(__old_len, static_cast<size_type>(1)) + 1;    iterator __new_start = _M_allocate(__len);    iterator __new_finish = __new_start;    __STL_TRY {      __new_pos = uninitialized_copy(_M_start, __p, __new_start);      construct(__new_pos, __c);      __new_finish = __new_pos + 1;      __new_finish = uninitialized_copy(__p, _M_finish, __new_finish);      construct(__new_finish);    }    __STL_UNWIND((destroy(__new_start,__new_finish),                   _M_deallocate(__new_start,__len)));    destroy(_M_start, _M_finish + 1);    _M_deallocate_block();    _M_start = __new_start;    _M_finish = __new_finish;    _M_end_of_storage = __new_start + __len;  }  return __new_pos;}template <class _CharT, class _Traits, class _Alloc>void basic_string<_CharT,_Traits,_Alloc>  ::insert(basic_string<_CharT,_Traits,_Alloc>::iterator __position,           size_t __n, _CharT __c){  if (__n != 0) {    if (size_type(_M_end_of_storage - _M_finish) >= __n + 1) {      const size_type __elems_after = _M_finish - __position;      iterator __old_finish = _M_finish;      if (__elems_after >= __n) {        uninitialized_copy((_M_finish - __n) + 1, _M_finish + 1,                           _M_finish + 1);        _M_finish += __n;        _Traits::move(__position + __n,                      __position, (__elems_after - __n) + 1);        _Traits::assign(__position, __n, __c);      }      else {        uninitialized_fill_n(_M_finish + 1, __n - __elems_after - 1, __c);        _M_finish += __n - __elems_after;        __STL_TRY {          uninitialized_copy(__position, __old_finish + 1, _M_finish);          _M_finish += __elems_after;        }        __STL_UNWIND((destroy(__old_finish + 1, _M_finish),                       _M_finish = __old_finish));        _Traits::assign(__position, __elems_after + 1, __c);      }    }    else {      const size_type __old_size = size();              const size_type __len = __old_size + max(__old_size, __n) + 1;      iterator __new_start = _M_allocate(__len);      iterator __new_finish = __new_start;      __STL_TRY {        __new_finish = uninitialized_copy(_M_start, __position, __new_start);        __new_finish = uninitialized_fill_n(__new_finish, __n, __c);        __new_finish = uninitialized_copy(__position, _M_finish,                                          __new_finish);        construct(__new_finish);      }      __STL_UNWIND((destroy(__new_start,__new_finish),                    _M_deallocate(__new_start,__len)));      destroy(_M_start, _M_finish + 1);      _M_deallocate_block();      _M_start = __new_start;      _M_finish = __new_finish;      _M_end_of_storage = __new_start + __len;        }  }}template <class _T, class _Traits, class _Alloc>template <class _InputIter>void basic_string<_T, _Traits, _Alloc>::insert(iterator __p,                                               _InputIter __first,                                                _InputIter __last,                                               input_iterator_tag){  for ( ; __first != __last; ++__first) {    __p = insert(__p, *__first);    ++__p;  }}template <class _CharT, class _Traits, class _Alloc>template <class _ForwardIter>void basic_string<_CharT,_Traits,_Alloc>::insert(iterator __position,                                           _ForwardIter __first,                                            _ForwardIter __last,                                           forward_iterator_tag){  if (__first != __last) {    const difference_type __n = distance(__first, __last);    if (_M_end_of_storage - _M_finish >= __n + 1) {      const difference_type __elems_after = _M_finish - __position;      iterator __old_finish = _M_finish;      if (__elems_after >= __n) {        uninitialized_copy((_M_finish - __n) + 1, _M_finish + 1,                           _M_finish + 1);        _M_finish += __n;        _Traits::move(__position + __n,                      __position, (__elems_after - __n) + 1);        _M_copy(__first, __last, __position);      }      else {        _ForwardIter __mid = __first;        advance(__mid, __elems_after + 1);        uninitialized_copy(__mid, __last, _M_finish + 1);        _M_finish += __n - __elems_after;        __STL_TRY {          uninitialized_copy(__position, __old_finish + 1, _M_finish);          _M_finish += __elems_after;        }        __STL_UNWIND((destroy(__old_finish + 1, _M_finish),                       _M_finish = __old_finish));        _M_copy(__first, __mid, __position);      }    }    else {      const size_type __old_size = size();              const size_type __len        = __old_size + max(__old_size, static_cast<size_type>(__n)) + 1;      pointer __new_start = _M_allocate(__len);      pointer __new_finish = __new_start;      __STL_TRY {        __new_finish = uninitialized_copy(_M_start, __position, __new_start);        __new_finish = uninitialized_copy(__first, __last, __new_finish);        __new_finish          = uninitialized_copy(__position, _M_finish, __new_finish);        construct(__new_finish);      }      __STL_UNWIND((destroy(__new_start,__new_finish),                    _M_deallocate(__new_start,__len)));      destroy(_M_start, _M_finish + 1);      _M_deallocate_block();      _M_start = __new_start;      _M_finish = __new_finish;      _M_end_of_storage = __new_start + __len;     }  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>&basic_string<_CharT,_Traits,_Alloc>  ::replace(iterator __first, iterator __last, size_type __n, _CharT __c){  const size_type __len = static_cast<size_type>(__last - __first);  if (__len >= __n) {    _Traits::assign(__first, __n, __c);    erase(__first + __n, __last);  }  else {    _Traits::assign(__first, __len, __c);    insert(__last, __n - __len, __c);  }  return *this;}template <class _CharT, class _Traits, class _Alloc>template <class _InputIter>basic_string<_CharT,_Traits,_Alloc>&basic_string<_CharT,_Traits,_Alloc>  ::replace(iterator __first, iterator __last, _InputIter __f, _InputIter __l,            input_iterator_tag) {  for ( ; __first != __last && __f != __l; ++__first, ++__f)    _Traits::assign(*__first, *__f);  if (__f == __l)    erase(__first, __last);  else    insert(__last, __f, __l);  return *this;}template <class _CharT, class _Traits, class _Alloc>template <class _ForwardIter>basic_string<_CharT,_Traits,_Alloc>&basic_string<_CharT,_Traits,_Alloc>  ::replace(iterator __first, iterator __last,            _ForwardIter __f, _ForwardIter __l,            forward_iterator_tag) {    const typename iterator_traits<_ForwardIter>::difference_type __n =      distance(__f, __l);    const difference_type __len = __last - __first;    if (__len >= __n) {      _M_copy(__f, __l, __first);      erase(__first + __n, __last);    }    else {      _ForwardIter m = __f;      advance(m, __len);      _M_copy(__f, m, __first);      insert(__last, m, __l);    }    return *this;}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find(const _CharT* __s, size_type __pos, size_type __n) const {  if (__pos >= size())    return npos;  else {    const const_iterator __result =      search(_M_start + __pos, _M_finish,              __s, __s + __n, _Eq_traits<_Traits>());    return __result != _M_finish ? __result - begin() : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find(_CharT __c, size_type __pos = 0) const {  if (__pos >= size())    return npos;  else {    const const_iterator __result =      find_if(_M_start + __pos, _M_finish,              bind2nd(_Eq_traits<_Traits>(), __c));    return __result != _M_finish ? __result - begin() : npos;  }}    template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::rfind(const _CharT* __s, size_type __pos, size_type __n) const {  const size_t __len = size();  if (__n > __len)    return npos;  else if (__n == 0)    return min(__len, __pos);  else {    const const_iterator __last = begin() + min(__len - __n, __pos) + __n;    const const_iterator __result = find_end(begin(), __last,                                           __s, __s + __n,                                           _Eq_traits<_Traits>());    return __result != __last ? __result - begin() : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::rfind(_CharT __c, size_type __pos = npos) const {  const size_type __len = size();  if (__len < 1)    return npos;  else {    const const_iterator __last = begin() + min(__len - 1, __pos) + 1;    const_reverse_iterator __rresult =      find_if(const_reverse_iterator(__last), rend(),              bind2nd(_Eq_traits<_Traits>(), __c));    return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find_first_of(const _CharT* __s, size_type __pos, size_type __n) const{  if (__pos >= size())    return npos;  else {    const const_iterator __result = std::find_first_of(begin() + __pos, end(),                                                     __s, __s + __n,                                                     _Eq_traits<_Traits>());    return __result != _M_finish ? __result - begin() : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find_last_of(const _CharT* __s, size_type __pos, size_type __n) const{  const size_type __len = size();  if (__len < 1)    return npos;  else {    const const_iterator __last = _M_start + min(__len - 1, __pos) + 1;    const const_reverse_iterator __rresult =      std::find_first_of(const_reverse_iterator(__last), rend(),                         __s, __s + __n,                         _Eq_traits<_Traits>());    return __rresult != rend() ? (__rresult.base() - 1) - _M_start : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const {  if (__pos > size())    return npos;  else {    const_iterator __result = find_if(_M_start + __pos, _M_finish,                                _Not_within_traits<_Traits>(__s, __s + __n));    return __result != _M_finish ? __result - _M_start : npos;  }}template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find_first_not_of(_CharT __c, size_type __pos = 0) const{  if (__pos > size())    return npos;  else {    const_iterator __result = find_if(begin() + __pos, end(),                                    not1(bind2nd(_Eq_traits<_Traits>(), __c)));    return __result != _M_finish ? __result - begin() : npos;  }}    template <class _CharT, class _Traits, class _Alloc>basic_string<_CharT,_Traits,_Alloc>::size_typebasic_string<_CharT,_Traits,_Alloc>  ::find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const {  const size_type __len = size();  if (__len < 1)    return npos;  else {    const const_iterator __last = begin() + min(__len - 1, __pos) + 1;    const const_reverse_iterator __rresult =      find_if(const_reverse_iterator(__last), rend(),              _Not_within_traits<_Traits>(__s, __s + __n));    return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;  }}template <class _T, class _Traits, class _Alloc>basic_string<_T, _Traits, _Alloc>::size_typebasic_string<_T, _Traits, _Alloc>  ::find_last_not_of(_T __c, size_type __pos = npos) const {  const size_type __len = size();  if (__len < 1)    return npos;  else {    const const_iterator __last = begin() + min(__len - 1, __pos) + 1;    const_reverse_iterator __rresult =

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -