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

📄 bastring.h

📁 STL完整源码,实现STL文件的读写和三维体的重建及其分析
💻 H
📖 第 1 页 / 共 2 页
字号:
  size_type find (const charT* s, size_type pos = 0) const    { return find (s, pos, traits::length (s)); }  size_type find (charT c, size_type pos = 0) const;  size_type rfind (const basic_string& str, size_type pos = npos) const    { return rfind (str.data(), pos, str.length()); }  size_type rfind (const charT* s, size_type pos, size_type n) const;  size_type rfind (const charT* s, size_type pos = npos) const    { return rfind (s, pos, traits::length (s)); }  size_type rfind (charT c, size_type pos = npos) const;  size_type find_first_of (const basic_string& str, size_type pos = 0) const    { return find_first_of (str.data(), pos, str.length()); }  size_type find_first_of (const charT* s, size_type pos, size_type n) const;  size_type find_first_of (const charT* s, size_type pos = 0) const    { return find_first_of (s, pos, traits::length (s)); }  size_type find_first_of (charT c, size_type pos = 0) const    { return find (c, pos); }  size_type find_last_of (const basic_string& str, size_type pos = npos) const    { return find_last_of (str.data(), pos, str.length()); }  size_type find_last_of (const charT* s, size_type pos, size_type n) const;  size_type find_last_of (const charT* s, size_type pos = npos) const    { return find_last_of (s, pos, traits::length (s)); }  size_type find_last_of (charT c, size_type pos = npos) const    { return rfind (c, pos); }  size_type find_first_not_of (const basic_string& str, size_type pos = 0) const    { return find_first_not_of (str.data(), pos, str.length()); }  size_type find_first_not_of (const charT* s, size_type pos, size_type n) const;  size_type find_first_not_of (const charT* s, size_type pos = 0) const    { return find_first_not_of (s, pos, traits::length (s)); }  size_type find_first_not_of (charT c, size_type pos = 0) const;  size_type find_last_not_of (const basic_string& str, size_type pos = npos) const    { return find_last_not_of (str.data(), pos, str.length()); }  size_type find_last_not_of (const charT* s, size_type pos, size_type n) const;  size_type find_last_not_of (const charT* s, size_type pos = npos) const    { return find_last_not_of (s, pos, traits::length (s)); }  size_type find_last_not_of (charT c, size_type pos = npos) const;  basic_string substr (size_type pos = 0, size_type n = npos) const    { return basic_string (*this, pos, n); }  int compare (const basic_string& str, size_type pos = 0, size_type n = npos) const;  // There is no 'strncmp' equivalent for charT pointers.  int compare (const charT* s, size_type pos, size_type n) const;  int compare (const charT* s, size_type pos = 0) const    { return compare (s, pos, traits::length (s)); }  iterator begin () { selfish (); return &(*this)[0]; }  iterator end () { selfish (); return &(*this)[length ()]; }private:  iterator ibegin () const { return &(*rep ())[0]; }  iterator iend () const { return &(*rep ())[length ()]; }public:  const_iterator begin () const { return ibegin (); }  const_iterator end () const { return iend (); }  reverse_iterator       rbegin() { return reverse_iterator (end ()); }  const_reverse_iterator rbegin() const    { return const_reverse_iterator (end ()); }  reverse_iterator       rend() { return reverse_iterator (begin ()); }  const_reverse_iterator rend() const    { return const_reverse_iterator (begin ()); }private:  void alloc (size_type size, bool save);  static size_type _find (const charT* ptr, charT c, size_type xpos, size_type len);  inline bool check_realloc (size_type s) const;  static Rep nilRep;  charT *dat;};#ifdef __STL_MEMBER_TEMPLATEStemplate <class charT, class traits, class Allocator> template <class InputIterator>basic_string <charT, traits, Allocator>& basic_string <charT, traits, Allocator>::replace (iterator i1, iterator i2, InputIterator j1, InputIterator j2)#elsetemplate <class charT, class traits, class Allocator>basic_string <charT, traits, Allocator>& basic_string <charT, traits, Allocator>::replace (iterator i1, iterator i2, const_iterator j1, const_iterator j2)#endif{  const size_type len = length ();  size_type pos = i1 - ibegin ();  size_type n1 = i2 - i1;  size_type n2 = j2 - j1;  OUTOFRANGE (pos > len);  if (n1 > len - pos)    n1 = len - pos;  LENGTHERROR (len - n1 > max_size () - n2);  size_t newlen = len - n1 + n2;  if (check_realloc (newlen))    {      Rep *p = Rep::create (newlen);      p->copy (0, data (), pos);      p->copy (pos + n2, data () + pos + n1, len - (pos + n1));      for (; j1 != j2; ++j1, ++pos)	traits::assign ((*p)[pos], *j1);      repup (p);    }  else    {      rep ()->move (pos + n2, data () + pos + n1, len - (pos + n1));      for (; j1 != j2; ++j1, ++pos)	traits::assign ((*rep ())[pos], *j1);    }  rep ()->len = newlen;  return *this;}template <class charT, class traits, class Allocator>inline basic_string <charT, traits, Allocator>operator+ (const basic_string <charT, traits, Allocator>& lhs,	   const basic_string <charT, traits, Allocator>& rhs){  basic_string <charT, traits, Allocator> str (lhs);  str.append (rhs);  return str;}template <class charT, class traits, class Allocator>inline basic_string <charT, traits, Allocator>operator+ (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  basic_string <charT, traits, Allocator> str (lhs);  str.append (rhs);  return str;}template <class charT, class traits, class Allocator>inline basic_string <charT, traits, Allocator>operator+ (charT lhs, const basic_string <charT, traits, Allocator>& rhs){  basic_string <charT, traits, Allocator> str (1, lhs);  str.append (rhs);  return str;}template <class charT, class traits, class Allocator>inline basic_string <charT, traits, Allocator>operator+ (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  basic_string <charT, traits, Allocator> str (lhs);  str.append (rhs);  return str;}template <class charT, class traits, class Allocator>inline basic_string <charT, traits, Allocator>operator+ (const basic_string <charT, traits, Allocator>& lhs, charT rhs){  basic_string <charT, traits, Allocator> str (lhs);  str.append (1, rhs);  return str;}template <class charT, class traits, class Allocator>inline booloperator== (const basic_string <charT, traits, Allocator>& lhs,	    const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) == 0);}template <class charT, class traits, class Allocator>inline booloperator== (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) == 0);}template <class charT, class traits, class Allocator>inline booloperator== (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) == 0);}template <class charT, class traits, class Allocator>inline booloperator!= (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) != 0);}template <class charT, class traits, class Allocator>inline booloperator!= (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) != 0);}template <class charT, class traits, class Allocator>inline booloperator< (const basic_string <charT, traits, Allocator>& lhs,	    const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) < 0);}template <class charT, class traits, class Allocator>inline booloperator< (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) > 0);}template <class charT, class traits, class Allocator>inline booloperator< (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) < 0);}template <class charT, class traits, class Allocator>inline booloperator> (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) < 0);}template <class charT, class traits, class Allocator>inline booloperator> (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) > 0);}template <class charT, class traits, class Allocator>inline booloperator<= (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) >= 0);}template <class charT, class traits, class Allocator>inline booloperator<= (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) <= 0);}template <class charT, class traits, class Allocator>inline booloperator>= (const charT* lhs, const basic_string <charT, traits, Allocator>& rhs){  return (rhs.compare (lhs) <= 0);}template <class charT, class traits, class Allocator>inline booloperator>= (const basic_string <charT, traits, Allocator>& lhs, const charT* rhs){  return (lhs.compare (rhs) >= 0);}template <class charT, class traits, class Allocator>inline booloperator!= (const basic_string <charT, traits, Allocator>& lhs,	    const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) != 0);}template <class charT, class traits, class Allocator>inline booloperator> (const basic_string <charT, traits, Allocator>& lhs,	   const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) > 0);}template <class charT, class traits, class Allocator>inline booloperator<= (const basic_string <charT, traits, Allocator>& lhs,	    const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) <= 0);}template <class charT, class traits, class Allocator>inline booloperator>= (const basic_string <charT, traits, Allocator>& lhs,	    const basic_string <charT, traits, Allocator>& rhs){  return (lhs.compare (rhs) >= 0);}class istream; class ostream;template <class charT, class traits, class Allocator> istream&operator>> (istream&, basic_string <charT, traits, Allocator>&);template <class charT, class traits, class Allocator> ostream&operator<< (ostream&, const basic_string <charT, traits, Allocator>&);template <class charT, class traits, class Allocator> istream&getline (istream&, basic_string <charT, traits, Allocator>&, charT delim = '\n');} // extern "C++"#include <std/bastring.cc>#endif

⌨️ 快捷键说明

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