C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- std::basic_string
- std::basic_string<CharT,Traits,Allocator>::npos
- std::basic_string<CharT,Traits,Allocator>::at
- std::hash (std::string, std::wstring, std::u16string, std::u32string, std::pmr::string, std::pmr::wstring, std::pmr::u16string, std::pmr::u32string)
- std::basic_string<CharT,Traits,Allocator>::assign
- std::basic_string<CharT,Traits,Allocator>::get_allocator
- std::basic_string<CharT,Traits,Allocator>::substr
- std::basic_string<CharT,Traits,Allocator>::basic_string
- std::basic_string<CharT,Traits,Allocator>::operator=
- std::basic_string<CharT,Traits,Allocator>::operator[]
- std::basic_string<CharT,Traits,Allocator>::front
- std::basic_string<CharT,Traits,Allocator>::back
- std::basic_string<CharT,Traits,Allocator>::data
- std::basic_string<CharT,Traits,Allocator>::c_str
- std::basic_string<CharT,Traits,Allocator>::operator basic_string_view
- std::basic_string<CharT,Traits,Allocator>::begin, std::basic_string<CharT,Traits,Allocator>::cbegin
- std::basic_string<CharT,Traits,Allocator>::end, std::basic_string<CharT,Traits,Allocator>::cend
- std::basic_string<CharT,Traits,Allocator>::rbegin, std::basic_string<CharT,Traits,Allocator>::crbegin
- std::basic_string<CharT,Traits,Allocator>::rend, std::basic_string<CharT,Traits,Allocator>::crend
- std::basic_string<CharT,Traits,Allocator>::empty
- std::basic_string<CharT,Traits,Allocator>::size, std::basic_string<CharT,Traits,Allocator>::length
- std::basic_string<CharT,Traits,Allocator>::max_size
- std::basic_string<CharT,Traits,Allocator>::reserve
- std::basic_string<CharT,Traits,Allocator>::capacity
- std::basic_string<CharT,Traits,Allocator>::shrink_to_fit
- std::basic_string<CharT,Traits,Allocator>::clear
- std::basic_string<CharT,Traits,Allocator>::insert
- std::basic_string<CharT,Traits,Allocator>::erase
- std::basic_string<CharT,Traits,Allocator>::push_back
- std::basic_string<CharT,Traits,Allocator>::pop_back
- std::basic_string<CharT,Traits,Allocator>::append
- std::basic_string<CharT,Traits,Allocator>::operator+=
- std::basic_string<CharT,Traits,Allocator>::compare
- std::basic_string<CharT,Traits,Allocator>::starts_with
- std::basic_string<CharT,Traits,Allocator>::ends_with
- std::basic_string<CharT,Traits,Allocator>::replace
- std::basic_string<CharT,Traits,Allocator>::copy
- std::basic_string<CharT,Traits,Allocator>::resize
- std::basic_string<CharT,Traits,Allocator>::swap
- std::basic_string<CharT,Traits,Allocator>::find
- std::basic_string<CharT,Traits,Allocator>::rfind
- std::basic_string<CharT,Traits,Allocator>::find_first_of
- std::basic_string<CharT,Traits,Allocator>::find_first_not_of
- std::basic_string<CharT,Traits,Allocator>::find_last_of
- std::basic_string<CharT,Traits,Allocator>::find_last_not_of
- std::operator+(std::basic_string)
- std::swap(std::basic_string)
- std::literals::string_literals::operator""s
- std::erase, std::erase_if (std::basic_string)
- operator<<,>>(std::basic_string)
- std::getline
- operator==,!=,<,<=,>,>=,<=>(std::basic_string)
- std::stoi, std::stol, std::stoll
- std::stoul, std::stoull
- std::stof, std::stod, std::stold
- std::to_string
- std::to_wstring
- std::basic_string çæ¨å¯¼æå¼
- std::basic_string_view
- ç©ºç»æ¢åèå符串
- ç©ºç»æ¢å¤åèå符串
- ç©ºç»æ¢å®½å符串
- std::char_traits
- 注é
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >åç¬¦ä¸²åº > std::basic_string
std::basic_string
  class CharT,
  class Traits = std::char_traits<CharT>,
  class Allocator = std::allocator<CharT>
  template <class CharT, class Traits = std::char_traits<CharT>>
  using basic_string = std::basic_string< CharT, Traits,
                      std::polymorphic_allocator<CharT>>
ç±»æ¨¡æ¿ basic_string åå¨å¹¶æçºµä½ä¸ºéæ°ç»å¹³å¡æ åå¸å±ç±»åç仿 char 对象åºåã该类æ¢ä¸ä¾èµå符类åï¼äº¦ä¸ä¾èµè¯¥ç±»åä¸çåçæä½ãæä½çå®ä¹éè¿ Traits 模æ¿å½¢åââ std::char_traits çç¹åæå
¼å®¹ç¹æ§ç±»æä¾ã Traits::char_type å CharT å¿
é¡»æååä¸ç±»åï¼å¦åç¨åºä¸ºç
å¼ã
basic_string æ¯ç¸ç»§åå¨çï¼å³å¯¹äº basic_string s ï¼å¯¹ä»»ä½ [0, s.size()) ä¸ç n æ &*(s.begin() + n) == &*s.begin() + n ï¼æçä»·å°ï¼æå s[0] çæéè½ä¼ éç»æå¾
æåç©ºç»æ¢ (C++11 èµ·) CharT[] æ°ç»é¦å
ç´ æéç彿°ã
std::basic_string 满足å
·åé
å¨å®¹å¨ (AllocatorAwareContainer) ãåºåå®¹å¨ (SequenceContainer) åè¿ç»å®¹å¨ (ContiguousContainer) (C++17 èµ·)çè¦æ±
æä¾æ°ä¸ªå¯¹äºå¸¸ç¨å符类åç typedef ï¼
| å®ä¹äºå¤´æä»¶
<string> | |
| Â | |
| ç±»å | å®ä¹ |
| std::string | std::basic_string<char> |
| std::wstring | std::basic_string<wchar_t> |
| std::u8string (C++20) | std::basic_string<char8_t> |
| std::u16string (C++11) | std::basic_string<char16_t> |
| std::u32string (C++11) | std::basic_string<char32_t> |
| std::pmr::string (C++17) | std::pmr::basic_string<char> |
| std::pmr::wstring (C++17) | std::pmr::basic_string<wchar_t> |
| std::pmr::u8string (C++20) | std::pmr::basic_string<char8_t> |
| std::pmr::u16string (C++17) | std::pmr::basic_string<char16_t> |
| std::pmr::u32string (C++17) | std::pmr::basic_string<char32_t> |
模æ¿å½¢å
| CharT | - | å符类å |
| Traits | - | æå®å符类å䏿ä½çç¹æ§ç±» |
| Allocator | - | ç¨äºåé å é¨åå¨çåé å¨ (Allocator) ç±»å |
æåç±»å
| Â | |||||
| æåç±»å | å®ä¹ | ||||
traits_type
|
Traits
| ||||
value_type
|
CharT
| ||||
allocator_type
|
Allocator | ||||
size_type
|
| ||||
difference_type
|
| ||||
reference
|
| ||||
const_reference
|
| ||||
pointer
|
| ||||
const_pointer
|
| ||||
iterator
|
éçéæºè®¿é®è¿ä»£å¨ (LegacyRandomAccessIterator) | ||||
const_iterator
|
å¸¸éæºè®¿é®è¿ä»£å¨ | ||||
reverse_iterator
|
std::reverse_iterator<iterator> | ||||
const_reverse_iterator
|
std::reverse_iterator<const_iterator> | ||||
æå彿°
æé basic_string (å ¬å¼æå彿°) | |
| (ææå½æ°) |
鿝å符串ï¼è¥ä½¿ç¨å
é¨åå¨åè§£åé
å® (å ¬å¼æå彿°) |
| 为å符串èµå¼ (å ¬å¼æå彿°) | |
| èµå¼å符ç»å符串 (å ¬å¼æå彿°) | |
| è¿åå
³èçåé
å¨ (å ¬å¼æå彿°) | |
å ç´ è®¿é® | |
| è®¿é®æå®åç¬¦ï¼æè¾¹çæ£æ¥ (å ¬å¼æå彿°) | |
| è®¿é®æå®å符 (å ¬å¼æå彿°) | |
| (C++11) |
访é®é¦å符 (å ¬å¼æå彿°) |
| (C++11) |
è®¿é®æåçå符 (å ¬å¼æå彿°) |
| è¿åæåå符串é¦å符çæé (å ¬å¼æå彿°) | |
| è¿åå符串çä¸å¯ä¿®æ¹ç C å符æ°ç»çæ¬ (å ¬å¼æå彿°) | |
| (C++17) |
è¿åå°æ´ä¸ªå符串çä¸å¯ä¿®æ¹ç basic_string_view (å ¬å¼æå彿°) |
è¿ä»£å¨ | |
| (C++11) |
è¿åæåèµ·å§çè¿ä»£å¨ (å ¬å¼æå彿°) |
| (C++11) |
è¿åæåæ«å°¾çè¿ä»£å¨ (å ¬å¼æå彿°) |
| (C++11) |
è¿åæåèµ·å§çéåè¿ä»£å¨ (å ¬å¼æå彿°) |
| (C++11) |
è¿åæåæ«å°¾çéåè¿ä»£å¨ (å ¬å¼æå彿°) |
容é | |
| æ£æ¥å符串æ¯å¦ä¸ºç©º (å ¬å¼æå彿°) | |
| è¿ååç¬¦æ° (å ¬å¼æå彿°) | |
| è¿åå符æ°çæå¤§å¼ (å ¬å¼æå彿°) | |
| ä¿çåå¨ (å ¬å¼æå彿°) | |
| è¿åå½å对象åé
çåå¨ç©ºé´è½ä¿åçå符æ°é (å ¬å¼æå彿°) | |
| (C++11) |
éè¿éæ¾ä¸ä½¿ç¨å
ååå°å
åä½¿ç¨ (å ¬å¼æå彿°) |
æä½ | |
| æ¸
é¤å
容 (å ¬å¼æå彿°) | |
| æå
¥å符 (å ¬å¼æå彿°) | |
| ç§»é¤å符 (å ¬å¼æå彿°) | |
| åéå符å°ç»å°¾ (å ¬å¼æå彿°) | |
| (C++11) |
ç§»é¤æ«å°¾å符 (å ¬å¼æå彿°) |
| åéå符å°ç»å°¾ (å ¬å¼æå彿°) | |
| åéå符å°ç»å°¾ (å ¬å¼æå彿°) | |
| æ¯è¾äºä¸ªå符串 (å ¬å¼æå彿°) | |
| (C++20) |
æ£æ¥ string æ¯å¦å§äºç»å®åç¼ (å ¬å¼æå彿°) |
| (C++20) |
æ£æ¥ string æ¯å¦ç»äºç»å®åç¼ (å ¬å¼æå彿°) |
| æ¿æ¢å符串çæå®é¨å (å ¬å¼æå彿°) | |
| è¿åå串 (å ¬å¼æå彿°) | |
| å¤å¶å符 (å ¬å¼æå彿°) | |
| æ´æ¹åå¨çåç¬¦æ° (å ¬å¼æå彿°) | |
| 交æ¢å
容 (å ¬å¼æå彿°) | |
æ¥æ¾ | |
| äºå符串ä¸å¯»æ¾å符 (å ¬å¼æå彿°) | |
| 寻æ¾å串çæå䏿¬¡åºç° (å ¬å¼æå彿°) | |
| 寻æ¾å符ç馿¬¡åºç° (å ¬å¼æå彿°) | |
| 寻æ¾å符ç馿¬¡ç¼ºå¤± (å ¬å¼æå彿°) | |
| 寻æ¾å符çæå䏿¬¡åºç° (å ¬å¼æå彿°) | |
| 寻æ¾å符çæå䏿¬¡ç¼ºå¤± (å ¬å¼æå彿°) | |
常é | |
| [éæ] |
ç¹æ®å¼ãåç¡®å«ä¹ä¾èµè¯å¢ (å ¬å¼éææå常é) |
éæå彿°
| è¿æ¥ä¸¤ä¸ªå符串æè
ä¸ä¸ªå符串åä¸ä¸ªå符 (彿°æ¨¡æ¿) | |
| (C++20 ä¸ç§»é¤)(C++20 ä¸ç§»é¤)(C++20 ä¸ç§»é¤)(C++20 ä¸ç§»é¤)(C++20 ä¸ç§»é¤)(C++20) |
以åå
¸åºæ¯è¾ä¸¤ä¸ªå符串 (彿°æ¨¡æ¿) |
| ç¹å std::swap ç®æ³ (彿°æ¨¡æ¿) | |
| æ¦é¤æææ»¡è¶³ç¹å®å¤å«æ åçå
ç´ (彿°æ¨¡æ¿) | |
è¾å ¥/è¾åº | |
| æ§è¡åç¬¦ä¸²çæµè¾å
¥ä¸è¾åº (彿°æ¨¡æ¿) | |
| ä» I/O æµè¯»åæ°æ®å°å符串 (彿°æ¨¡æ¿) | |
æ°å¼è½¬æ¢ | |
| (C++11)(C++11)(C++11) |
转æ¢å符串为æç¬¦å·æ´æ° (彿°) |
| (C++11)(C++11) |
转æ¢å符串为æ ç¬¦å·æ´æ° (彿°) |
| (C++11)(C++11)(C++11) |
转æ¢å符串为浮ç¹å¼ (彿°) |
| (C++11) |
è½¬æ¢æ´æ°ææµ®ç¹å¼ä¸º string (彿°) |
| (C++11) |
è½¬æ¢æ´æ°ææµ®ç¹å¼ä¸º wstring (彿°) |
åé¢é
| å®ä¹äºå
èå½å空é´
std::literals::string_literals | |
| (C++14) |
转æ¢å符æ°ç»åé¢é为 basic_string (彿°) |
è¾ å©ç±»
| (C++11)(C++20)(C++11)(C++11)(C++11)(C++20)(C++20)(C++20)(C++20)(C++20) |
string çå叿¯æ (类模æ¿ç¹å) |