C String容器使用中需要注意的地方

2021-08-27 14:22:17 字數 1179 閱讀 7306

###1. size()方法的返回值問題:

string str = "hello world";

int len = str.size(); //不太好的寫法,也可以說是錯誤的

auto len = str.szie();//c++11的寫法

unsigned int len = str.size(); // 正確的寫法

int n=-1;

str.size()string類中size()方法的返回值是size_type,這其實是乙個無符號整型,所以如果用int去接受的話,有肯能變成乙個負數

###2. string中+的使用

string str = "hello " + "world"; //錯誤,不能將兩個常量字串相加給乙個string賦值

string str = "hello";

string str2 = str+" world";//正確

string類中使用+需要注意的是,**+**兩側至少需要乙個string型別的資料才可以

###3. string的遍歷

c++11提供了一種新的遍歷語句,如下:

for(declaration:expression)

statement

所以對於乙個字串的遍歷我們可以這樣寫:

######事例一:

string str = "my name is xiaoming";

int index = 0;

for (auto c : str) }

cout << index << endl;

使用auto自動推導出c的型別,並通過isspace判斷c是不是乙個空格。

######事例二:

C set容器使用

stl的set是乙個二叉排序樹,也稱為集合,其在stl內部實現是紅黑樹,能夠將元素預設從小到大排序或者是字典序排序。如果宣告的元素型別不是基本資料型別而是自定義的類要給它乙個比較器,類似於sort的compare。include include include include using names...

C vector容器使用

一 vector容器四種遍歷方式 include include include using namespace std void print vector v bool mycmpare const int a,const int b 定義三個結構體 struct cvector2 struct ...

C set 容器使用

g set.cc std c 17 set 容器使用 set 內部是使用紅黑樹實現的,是一種平衡二叉樹,所以對其插入 查詢效率是非常高的,其時間複雜度是log2 n set是stl中一種標準關聯容器。它底層使用平衡的搜尋樹 紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和...