#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
,end
,operator
容量相關:size
,resize
,reserve
修改:+=
,pop_back
,swap
其他操作:c_str
,find
,rfind
,substr
非成員函式:比較,>>
,<<
,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 物件,另外乙個可以是字元或者字元指標...