今天關於幾個標準庫型別的筆記

2021-06-07 15:55:22 字數 1762 閱讀 4644

標準庫string型別

string型別的初始化方式:

1    string s1;    預設建構函式,s1為空串。

2    string s2(s1);

3    string s3("value");

4    string s4(n,'c');

在進行賦值時,如:s1=s2;是先釋放s1的記憶體,再分配合適的記憶體給s1;

再進行運算時應注意,

string    s3=s1+"hello";合法,把乙個string物件和乙個字串字面值連線起來。

string "hello"+","+"world";非法,試圖將兩個字串相加。

string s5=s1+"world";合法,s1先與」,「結合成新的string物件。

string s6="hello"+","+s2;不合法。

for迴圈中,條件的次序不同,會產生

不同的結果。

例如1    for(int i=0;cin>>a&&i<10;i++)

2    for(int i=0;i<10&&cin>>a;i++)

1需要執行11次輸入才能判定跳出迴圈,而2只需要執行10次輸入就能跳出迴圈,說明在執行2中條件判斷是只要出現第乙個不符合系哦啊見就會跳出迴圈,不會繼續進行後續判定,以此類推,在判定含有&&操作符語句的時候都是這樣的。

停止輸入ctrl+z;

標準庫vector型別

幾種初始化vector物件的方式

1    vectorv1        儲存型別為t,預設建構函式,v1為空

2    vectorv2(v1);    

3    vectorv3(n,i);    包含n個值為i的元素

4    vectorv4 (n) ;    含有值初始化元素的n個副本

vector中如果存在vectors,則可用s[i][j]表示s中第i個string元素的第j個字元。

迭代器begin(),end().

迭代器型別可以使用自增和解引用操作符(*操作符)來訪問迭代器所指向的元素,由於end操作返回的迭代器不指向任何元素,因此對不能對它進行解引用或自增操作。

我的理解,迭代器更多的象乙個指標,或者說它就是乙個指標。用法有

for(vector::interator iter=ivec.begin();iter!=ivec.end;++iter) 

語句中定義了迭代器iter,我覺得就是乙個vector型別的指標;iter=ivec.begin()就是把ivec的首位址賦值給iter,執行中*iter=1就是對iter所指向的元素進行賦值。

任何改變vector長度的操作都會是已存在的迭代器失效。

標準庫bitset型別

bitset與vector類似都是乙個類模板。不過bitset型別物件的區別是在其長度而非其型別。

它的初始化方法:

1    bitsetb;        b有n位,全為零。

2    bitsetb(u);    b為unsize long型的乙個副本    

3    bitsetn(s);    同上,string。

4    bitsetb(s,pos,n)    b是s中從位置pos開始的n個單位的副本。

string與bitset之間的轉化是反向的。如;

string strval("1100");

bitset<32>bitvec4(strval);

bitvec4的位模式中第2.3位為1,其餘項為0。

這幾天書看的有點慢,要看快點了。先看完一遍,不懂得再回來好好琢磨。

C Primer 學習筆記(二) 標準庫型別

一 命名空間的using指示與using宣告 1 using宣告 1 乙個using宣告一次只引入乙個命名空間成員。2 using宣告的作用域為 從using宣告點開始,直到包含該using宣告的作用域的末尾,名字都是可見的。類作用域中的using宣告侷限於被定義類的基類中定義的名字。using s...

c primer學習筆記2 標準庫型別

1 string.size 的返回值型別為string size type,而不是int,不要把size的返回值賦給乙個int變數,可能溢位 實際上很多庫型別size操作的返回值型別都是size type型別,這是一種類似unsigned int的型別 同樣在進行索引時索引值也是size type型...

C 新手關於標準庫學習筆記

c 中定義了乙個內容豐富的抽象資料型別標準庫,其中最重要的是string和vector,他們分別定義了大小可變的字串和集合。下面分別詳細講解兩者還有bitset的一些基本用法。新手記錄的東西都很瑣碎,沒辦法 標準庫string型別 讀寫 標準輸入讀取string型別 cin s 忽略開頭所有空白字元...