[英]Divide a std::string without copying
是否可以將std::string
分成兩個或多個子字符串而不進行復制,就像我們可以使用移動構造函數創建一個新的std::string
而不復制一樣?
你不能用std::string
來做這件事。 但是,您可以使用C ++ 17中的std::string_view
執行此操作。
例:
std::string str = "TheBigStr";
std::string_view p1 = std::string_view(str.data() + 3, 3);
字符串視圖不復制數據,因此在使用視圖時不應修改str
。
我不知道你使用的是哪個編譯器,但至少微軟的GSL有string_span,它本質上是一個string_view。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.