string類的基本使用以及常用介面

2021-10-06 22:11:09 字數 4770 閱讀 9724

#include

void

test()

訪問容器的一種通用方式, 所有支援迭代器的容器,其迭代器的使用方式完全相同

迭代器的使用方式:類似於指標的使用方式,可以通過解引用獲取元素內容,可以通過++, --進行位置移動

正向迭代器

void

test()

cout << endl;

//#include

vector<

int> vec =

; vector<

int>

::iterator vit = vec.

begin()

;while

(vit != vec.

end())

cout << endl;

}

反向迭代器

void

test()

cout << endl;

}

正向const迭代器

string::const_iterator cit = str.

begin()

;string::const_iterator cit2 = str.

cbegin()

;//const迭代器建議使用const介面獲取:c...

while

(cit != str.

cend()

)

小結:

end();

rbegin, rend同上,也有兩個介面

cbegin, cend, crbegin, crend—> 都返回const迭代器

void

test()

void

test()

n > size && n > capacity :增容(開新空間 + 拷貝 + 釋放原有空間) + 新的位置賦值(如果沒有給預設字元,預設是 『\0』 )

n < size:只修改size

當 n > size && n < capacity:新的位置賦值(如果沒有給賦值字元,預設賦值 『\0』 + 修改size )

void

test()

void

test()

operator可讀可寫介面,如str[i],如果越界,非法訪問

at可讀可寫介面,如str.at(i),但是**可讀性不強,如果越界,拋異常

範圍for也可讀可寫,如果需要修改,則接收型別為引用型別,底層通過迭代器實現

for

(int i =

0; i < str.

size()

; i++

)for

(int i =

0; i < str.

size()

; i++

)for

(auto

& ch : str)

back返回最後乙個字元

front返回第乙個字元

string s;

s.push_back

('a');

// as.(

2,'b')

;// abb 追加兩個bs.(

"cde");

// abbcde 追加cde

string s2;

s2.(s)

;// abbcde 追加addcde

string s3;

s3.(s,3,

2);// cd 從s的第三個位置追加兩個字元

char strarr=

"1234"

;s3.

(strarr, strarr +2)

;// cd34 //從strarr第二個位置之後追加到s3

s3.(s2.

begin()

, s2.

end())

;// cd34abbcde 通過迭代器追加

string s4;

s4 +

='1'

;//1

s4 +

='234'

;// 1234

s4 +

= s;

// 1234abbcde

s4.

inster(0

, s3)

;//cd1234abbcde

s4.inster(0

, s3,7,

3);s4.

inster

(s4.

end(),

3,'1')

;s4.

inster

(s4.

end(

), strarr +

1, strarr +3)

;

s4.

assign

("11111");

// 11111 效果和下面相同

s4 =

"11111"

;

s4.

erase(0

,2);

// 111

s4.erase

(s4.

begin()

);//11

s4.erase

(s4.

end())

;// 11 此時end迭代器位置非法,不做操作

s4.erase

(s4.begin, s4.

end())

;// "" 刪完了

string s =

"0123456789"

;s.replace =(3

,5,"aa");

// 12aa89 從第三個元素開始替換五個字元

s.replace =

(s.begin()

+1, s.

end()-

1,"0")

;// 009 迭代器左閉右開,begin + 1第二個字元開始,end - 1指的是9

string s2 =

"abc"

;s2.

swap

(s, s2)

;//s2: 009, s: abc

//呼叫string成員函式交換

swap

(s, s2)

;//s2: abc, s: 009

//全域性swap函式:內部呼叫string的成員函式swap完成交換

int a =1;

int b =2;

swap

(a, b)

;//全域性任何型別的swap函式

const

char

* ptr2 = s.

c_str()

;const

char

* ptr2 = s.

data()

;

string s =

"aaaaaaaaaa"

;size_t pos = str.

find

('a');

size_t pos2 = str.

rfind

('a'

);

string str =

"0123456789"

;string str2 = str.

substr(0

,5);

//01234 從索引為0開始擷取五個字元

string s =

"9";

string s2 =

"123"

;string s3 =

"1234"

;bool ret = s > s2;

//true

ret = s2 > s3;

//false

ret = s > s3;

//true

遍歷:begin,endoperator容量相關:sizeresizereserve修改:+=pop_backswap其他操作:c_strfindrfindsubstr非成員函式:比較,>><<getline

類的使用以及類與物件的關係

siwuxie095 1 類的定義 宣告以及使用 定義格式 宣告乙個類需要通過關鍵字 class 注意 小寫 類名遵循帕斯卡命名法 又稱 大駝峰命名法 屬性和方法可選 2 類與物件的關係 類是對某一類事物的描述,是抽象的 概念上的意義,物件是實際存在的 該類事物的每乙個個體,也被稱為例項 3 記憶體...

CMFCColorButton的使用以及重繪

cmfccolorbutton是visual studio 2008 sp1版本以上提供的顏色採集器。系統環境 windows 7 程式設計環境 visual studio 2008 sp1 下面介紹下使用步驟 1.新建基於對話方塊的工程,名稱為mycolorbuttondemo 2.拖動乙個按鈕到...

CString基本使用以及 和Char 之間的轉化

cstring 的簡單使用 1.cstring 物件的連線 cstring 物件的連線是通過該類的 成員操作符進行的。成員操作符也稱為連線操作符,可以把兩個字串連線起來,並返回乙個 cstring 的物件。但需要注意的是 兩個引數字串至少有乙個是 cstring 物件,另外乙個可以是字元或者字元指標...