📄 basic_string.h
字号:
{ typedef typename _Is_integer<_InIterator>::_Integral _Integral; return _S_construct_aux(__beg, __end, __a, _Integral()); } // For Input Iterators, used in istreambuf_iterators, etc. template<class _InIterator> static _CharT* _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, input_iterator_tag); // For forward_iterators up to random_access_iterators, used for // string::iterator, _CharT*, etc. template<class _FwdIterator> static _CharT* _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, forward_iterator_tag); static _CharT* _S_construct(size_type __req, _CharT __c, const _Alloc& __a); public: /** * @brief Copy substring into C string. * @param s C string to copy value into. * @param n Number of characters to copy. * @param pos Index of first character to copy. * @return Number of characters actually copied * @throw std::out_of_range If pos > size(). * * Copies up to @a n characters starting at @a pos into the C string @a * s. If @a pos is greater than size(), out_of_range is thrown. */ size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const; /** * @brief Swap contents with another string. * @param s String to swap with. * * Exchanges the contents of this string with that of @a s in constant * time. */ void swap(basic_string& __s); // String operations: /** * @brief Return const pointer to null-terminated contents. * * This is a handle to internal data. Do not modify or dire things may * happen. */ const _CharT* c_str() const { return _M_data(); } /** * @brief Return const pointer to contents. * * This is a handle to internal data. Do not modify or dire things may * happen. */ const _CharT* data() const { return _M_data(); } /** * @brief Return copy of allocator used to construct this string. */ allocator_type get_allocator() const { return _M_dataplus; } /** * @brief Find position of a C substring. * @param s C string to locate. * @param pos Index of character to search from. * @param n Number of characters from @a s to search for. * @return Index of start of first occurrence. * * Starting from @a pos, searches forward for the first @a n characters * in @a s within this string. If found, returns the index where it * begins. If not found, returns npos. */ size_type find(const _CharT* __s, size_type __pos, size_type __n) const; /** * @brief Find position of a string. * @param str String to locate. * @param pos Index of character to search from (default 0). * @return Index of start of first occurrence. * * Starting from @a pos, searches forward for value of @a str within * this string. If found, returns the index where it begins. If not * found, returns npos. */ size_type find(const basic_string& __str, size_type __pos = 0) const { return this->find(__str.data(), __pos, __str.size()); } /** * @brief Find position of a C string. * @param s C string to locate. * @param pos Index of character to search from (default 0). * @return Index of start of first occurrence. * * Starting from @a pos, searches forward for the value of @a s within * this string. If found, returns the index where it begins. If not * found, returns npos. */ size_type find(const _CharT* __s, size_type __pos = 0) const { __glibcxx_requires_string(__s); return this->find(__s, __pos, traits_type::length(__s)); } /** * @brief Find position of a character. * @param c Character to locate. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for @a c within this string. * If found, returns the index where it was found. If not found, * returns npos. */ size_type find(_CharT __c, size_type __pos = 0) const; /** * @brief Find last position of a string. * @param str String to locate. * @param pos Index of character to search back from (default end). * @return Index of start of last occurrence. * * Starting from @a pos, searches backward for value of @a str within * this string. If found, returns the index where it begins. If not * found, returns npos. */ size_type rfind(const basic_string& __str, size_type __pos = npos) const { return this->rfind(__str.data(), __pos, __str.size()); } /** * @brief Find last position of a C substring. * @param s C string to locate. * @param pos Index of character to search back from. * @param n Number of characters from s to search for. * @return Index of start of last occurrence. * * Starting from @a pos, searches backward for the first @a n * characters in @a s within this string. If found, returns the index * where it begins. If not found, returns npos. */ size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const; /** * @brief Find last position of a C string. * @param s C string to locate. * @param pos Index of character to start search at (default 0). * @return Index of start of last occurrence. * * Starting from @a pos, searches backward for the value of @a s within * this string. If found, returns the index where it begins. If not * found, returns npos. */ size_type rfind(const _CharT* __s, size_type __pos = npos) const { __glibcxx_requires_string(__s); return this->rfind(__s, __pos, traits_type::length(__s)); } /** * @brief Find last position of a character. * @param c Character to locate. * @param pos Index of character to search back from (default 0). * @return Index of last occurrence. * * Starting from @a pos, searches backward for @a c within this string. * If found, returns the index where it was found. If not found, * returns npos. */ size_type rfind(_CharT __c, size_type __pos = npos) const; /** * @brief Find position of a character of string. * @param str String containing characters to locate. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for one of the characters of * @a str within this string. If found, returns the index where it was * found. If not found, returns npos. */ size_type find_first_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_of(__str.data(), __pos, __str.size()); } /** * @brief Find position of a character of C substring. * @param s String containing characters to locate. * @param pos Index of character to search from (default 0). * @param n Number of characters from s to search for. * @return Index of first occurrence. * * Starting from @a pos, searches forward for one of the first @a n * characters of @a s within this string. If found, returns the index * where it was found. If not found, returns npos. */ size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; /** * @brief Find position of a character of C string. * @param s String containing characters to locate. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for one of the characters of * @a s within this string. If found, returns the index where it was * found. If not found, returns npos. */ size_type find_first_of(const _CharT* __s, size_type __pos = 0) const { __glibcxx_requires_string(__s); return this->find_first_of(__s, __pos, traits_type::length(__s)); } /** * @brief Find position of a character. * @param c Character to locate. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for the character @a c within * this string. If found, returns the index where it was found. If * not found, returns npos. * * Note: equivalent to find(c, pos). */ size_type find_first_of(_CharT __c, size_type __pos = 0) const { return this->find(__c, __pos); } /** * @brief Find last position of a character of string. * @param str String containing characters to locate. * @param pos Index of character to search back from (default end). * @return Index of last occurrence. * * Starting from @a pos, searches backward for one of the characters of * @a str within this string. If found, returns the index where it was * found. If not found, returns npos. */ size_type find_last_of(const basic_string& __str, size_type __pos = npos) const { return this->find_last_of(__str.data(), __pos, __str.size()); } /** * @brief Find last position of a character of C substring. * @param s C string containing characters to locate. * @param pos Index of character to search back from (default end). * @param n Number of characters from s to search for. * @return Index of last occurrence. * * Starting from @a pos, searches backward for one of the first @a n * characters of @a s within this string. If found, returns the index * where it was found. If not found, returns npos. */ size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; /** * @brief Find last position of a character of C string. * @param s C string containing characters to locate. * @param pos Index of character to search back from (default end). * @return Index of last occurrence. * * Starting from @a pos, searches backward for one of the characters of * @a s within this string. If found, returns the index where it was * found. If not found, returns npos. */ size_type find_last_of(const _CharT* __s, size_type __pos = npos) const { __glibcxx_requires_string(__s); return this->find_last_of(__s, __pos, traits_type::length(__s)); } /** * @brief Find last position of a character. * @param c Character to locate. * @param pos Index of character to search back from (default 0). * @return Index of last occurrence. * * Starting from @a pos, searches backward for @a c within this string. * If found, returns the index where it was found. If not found, * returns npos. * * Note: equivalent to rfind(c, pos). */ size_type find_last_of(_CharT __c, size_type __pos = npos) const { return this->rfind(__c, __pos); } /** * @brief Find position of a character not in string. * @param str String containing characters to avoid. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for a character not contained * in @a str within this string. If found, returns the index where it * was found. If not found, returns npos. */ size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_not_of(__str.data(), __pos, __str.size()); } /** * @brief Find position of a character not in C substring. * @param s C string containing characters to avoid. * @param pos Index of character to search from (default 0). * @param n Number of characters from s to consider. * @return Index of first occurrence. * * Starting from @a pos, searches forward for a character not contained * in the first @a n characters of @a s within this string. If found, * returns the index where it was found. If not found, returns npos. */ size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const; /** * @brief Find position of a character not in C string. * @param s C string containing characters to avoid. * @param pos Index of character to search from (default 0). * @return Index of first occurrence. * * Starting from @a pos, searches forward for a character not contained * in @a s within this string. If found, returns the index where it * was found.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -