C++之string類對象的容量操作詳解
前言
hello,大傢好,今天這期文章我們用來介紹string類對象的容量操作。希望對大傢有所幫助,讓我們開始吧。
1. size返回字符串的有效長度
返回字符串的長度,以字節為單位。這是符合字符串內容的實際字節數,不一定等於它的存儲容量。
註意:返回的長度不包括\0哦。
#include<iostream> #include<string> using namespace std; int main() { string s1 = "hello,word"; cout << s1.size() << endl; return 0; }
2. length 返回字符串的有效長度
返回字符串的長度,以字節為單位。這是符合字符串內容的實際字節數,不一定等於它的存儲容量。
length和size是同義的,功能相同。
#include<iostream> #include<string> using namespace std; int main() { string s2 = "hello,word"; cout << s2.length() << endl; return 0; }
3. capacity 返回總空間的大小
返回當前為字符串分配的存儲空間的大小,以字節表示。這個容量不一定等於字符串長度。它可以等於或大於,額外的空間允許對象在向字符串添加新字符時優化其操作。註意,這個容量並不假設字符串的長度有限制。當這個容量用完並且需要更多的容量時,對象會自動擴展它(重新分配它的存儲空間)。
capacity返回的值一般會比size大。也就是說在開辟空間的時候,是有開辟額外的空間的。
#include<iostream> #include<string> using namespace std; int main() { string s3 = "hello,word"; cout << s3.capacity() << endl; return 0; }
4. empty 檢測是否為空串
返回字符串是否為空(即它的長度是否為0)。這個函數不會以任何方式修改字符串的值。如果字符串長度為0則為True,否則為false。
這個函數是檢查字符串是否為空串的函數,當為空串時,返回值為真,輸出值為1,如果不是看出,返回值為假,輸出值為0.
#include<iostream> #include<string> using namespace std; int main() { string s4; cout << s4.empty() << endl; return 0; }
#include<iostream> #include<string> using namespace std; int main() { string s4="hello,word"; cout << s4.empty() << endl; return 0; }
5. clear 清空有效字符
刪除字符串的內容,該字符串變成一個空字符串(長度為0個字符)
#include<iostream> #include<string> using namespace std; int main() { string s5="hello,word"; s5.clear(); cout << s5 << endl; return 0; }
6. resize 修改個數並填充
將字符串的長度調整為n個字符。如果n小於當前字符串的長度,則將當前值縮短到第n個字符,刪除第n個字符以外的字符。如果n大於當前字符串長度,延長最後插入當前內容盡可能多的字符需要達到的大小n。如果指定c, c的新元素初始化復制,否則,他們初始化值字符(null字符)。
#include<iostream> #include<string> using namespace std; int main() { string s6 = "hello,word"; cout << s6.capacity() << endl; s6.resize(8); cout << s6 << endl; cout << s6.capacity() << endl; s6.resize(15); cout << s6.capacity() << endl; cout << s6 << endl; s6.resize(20,'m'); cout << s6.capacity() << endl; cout << s6 << endl; return 0; }
7. reserve 為字符串預留空間
請求將字符串容量調整到計劃的大小更改,最大長度為n個字符。
如果n大於當前字符串的容量,該函數將使容器的容量增加到n個字符(或更大)。在其他所有情況下,它被視為一個非綁定請求來縮小字符串的容量:容器實現可以自由地進行優化,讓字符串的容量大於n。這個函數對字符串長度沒有影響,也不能改變字符串的內容。
#include<iostream> #include<string> using namespace std; int main() { string s7 = "hello,word"; cout << s7.capacity() << endl << endl; s7.reserve(50); cout << s7.capacity() << endl << endl; s7.reserve(100); cout << s7.capacity() << endl << endl; return 0; }
總結
本片文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- 詳解C++ STL vector容量(capacity)和大小(size)的區別
- C++ STL標準庫std::vector的使用詳解
- c++ 中vector 常見用法
- C++ 命名空間 using聲明使用示例詳解
- 一篇文章徹底搞懂C++常見容器