C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- std::basic_string
- std::basic_string_view
- std::basic_string_view<CharT,Traits>::operator=
- std::basic_string_view<CharT,Traits>::begin, std::basic_string_view<CharT,Traits>::cbegin
- std::basic_string_view<CharT,Traits>::end, std::basic_string_view<CharT,Traits>::cend
- std::basic_string_view<CharT,Traits>::basic_string_view
- std::basic_string_view<CharT,Traits>::copy
- std::hash (std::string_view, std::wstring_view, std::u16string_view, std::u32string_view)
- std::basic_string_view<CharT,Traits>::rbegin, std::basic_string_view<CharT,Traits>::crbegin
- std::basic_string_view<CharT,Traits>::rend, std::basic_string_view<CharT,Traits>::crend
- std::basic_string_view<CharT,Traits>::at
- std::basic_string_view<CharT,Traits>::operator[]
- std::basic_string_view<CharT,Traits>::front
- std::basic_string_view<CharT,Traits>::back
- std::basic_string_view<CharT,Traits>::data
- std::basic_string_view<CharT,Traits>::size, std::basic_string_view<CharT,Traits>::length
- std::basic_string_view<CharT,Traits>::max_size
- std::basic_string_view<CharT,Traits>::empty
- std::basic_string_view<CharT,Traits>::remove_prefix
- std::basic_string_view<CharT,Traits>::remove_suffix
- std::basic_string_view<CharT,Traits>::swap
- std::basic_string_view<CharT,Traits>::substr
- std::basic_string_view<CharT,Traits>::compare
- std::basic_string_view<CharT,Traits>::starts_with
- std::basic_string_view<CharT,Traits>::ends_with
- std::basic_string_view<CharT,Traits>::find
- std::basic_string_view<CharT,Traits>::rfind
- std::basic_string_view<CharT,Traits>::find_first_of
- std::basic_string_view<CharT,Traits>::find_last_of
- std::basic_string_view<CharT,Traits>::find_first_not_of
- std::basic_string_view<CharT,Traits>::find_last_not_of
- std::basic_string_view<CharT,Traits>::npos
- operator==,!=,<,<=,>,>=,<=>(std::basic_string_view)
- operator<<(std::basic_string_view)
- std::literals::string_view_literals::operator""sv
- std::basic_string_view çæ¨å¯¼æå¼
- ç©ºç»æ¢åèå符串
- ç©ºç»æ¢å¤åèå符串
- ç©ºç»æ¢å®½å符串
- std::char_traits
- 注é
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >åç¬¦ä¸²åº >std::basic_string_view > std::basic_string_view<CharT,Traits>::data
std::basic_string_view<CharT,Traits>::data
| constexpr const_pointer data() const noexcept; |
(C++17 èµ·) | |
è¿åæååºå±å符æ°ç»çæéã该æé满足èå´ [data(); data() + size()) åæ³ï¼ä¸å ¶ä¸çå¼ä¸è§å¾çå¼å¯¹åºã
åæ°
ï¼æ ï¼
è¿åå¼
æååºå±å符æ°ç»çæéã
å¤æåº¦
常æ°ã
注æ
ä¸åäº std::basic_string::data() åå符串åé¢éï¼ data() å¯è½è¿åä¸ä¸ªæåéç©ºç»æ¢çç¼å²åºçæéãä»èå° data() ä¼ éç»ä¸ä¸ªä»
æ¥æ¶ const CharT* å¹¶æå¾
ç©ºç»æ¢å符串çåç¨åºæ¯ä¸ä¸ªå
¸åé误ã
示ä¾
è¿è¡æ¤ä»£ç
#include <iostream> #include <cstring> #include <cwchar> #include <string> #include <string_view> int main() { std::wstring_view wcstr_v = L"xyzzy"; std::cout << std::wcslen(wcstr_v.data()) << '\n'; // OK ï¼åºå±å符æ°ç»ä¸ºç©ºç»æ¢  char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // é误ï¼åºå±å符æ°ç»éç©ºç»æ¢  std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK ï¼ std::string çåºå±å符æ°ç»å§ç»ä¸ºç©ºç»æ¢ }
è¾åºï¼
5 3
åé
| 访é®é¦ä¸ªå符 (å ¬å¼æå彿°) | |
| è®¿é®ææ«å符 (å ¬å¼æå彿°) |