C++学习笔记,坚持自律!
C++學(xué)習(xí)筆記
- 前言
- 一、變量和基本類型
- 1.處理類型
- (1)auto類型說明符
- (2)decltype類型指示符
 
 
- 二、字符串、向量和數(shù)組
- 1.String
- (1)初始化
- (2)string對(duì)象上的操作
- ①使用getline讀取一整行
- ②處理string對(duì)象中的字符
 
 
- 2.vector
- (1)初始化
- (2)向vector中添加元素
- (3)vector的其他操作
- vector注意!!!
 
 
前言
放了寒假了,也不能去外邊玩,游戲也玩的沒意思了。只能窩在家好好學(xué)習(xí)了哈哈。
 之前做數(shù)據(jù)結(jié)構(gòu)題的時(shí)候,有好多都不會(huì),然后就去CSDN上找那些大佬們做的,其中好多都是C++的,感覺C++好像很厲害,于是就買了一本C++的書,叫《c++ Primer》的書,第五版的,準(zhǔn)備自學(xué)!!!
 做這個(gè)筆記也無非就是想督促一下自己,希望能堅(jiān)持下去吧!!
 以下好多筆記都是源自于書上,若有侵權(quán),立馬刪除!!!
 
提示:筆記主要還是挑一些重點(diǎn)的來看吧,基本上是那些不用于C的。
 如果大佬們還有自己認(rèn)為重要的知識(shí)點(diǎn),歡迎來補(bǔ)充~~~
 感謝!!!
一、變量和基本類型
1.處理類型
(1)auto類型說明符
auto是讓編譯器自己去分析表達(dá)式所屬的類型
 它會(huì)忽略頂層const,如果希望是頂層的,則需聲明出來
(2)decltype類型指示符
選擇并返回操作數(shù)的數(shù)據(jù)類型
 decltype((variable))的結(jié)果永遠(yuǎn)是 引用
 decltype(variable)的結(jié)果只有當(dāng)variable本身就是一個(gè)引用時(shí)才是引用
二、字符串、向量和數(shù)組
using:頭文件不應(yīng)包含using
1.String
(1)初始化
string s1; //默認(rèn)初始化,s1是一個(gè)空字符串 string s2(s1); //s2是s1的副本 string s2=s1; //同上 string s3("value"); //s3是字面值"value"的副本,除了字面值最后的那個(gè)空字符外 string s(n,'c'); //把s初始化為由連續(xù)n個(gè)字符c組成的字符(2)string對(duì)象上的操作
| os<<s | 將s寫到輸出流os中,返回os | 
| is<<s | 從is中讀取字符串賦給s,字符串以空白分隔,返回is | 
| getline(is,s) | 從is中讀取一行賦給s,返回is | 
| s.empty() | 判斷為空返回true,不為空返回false | 
| s.size() | 返回s中字符的個(gè)數(shù) | 
| s[n] | s中第n個(gè)字符,n從0開始 | 
| s1+s2 | s1和s2連接 | 
| s1=s2 | 賦值 | 
| s1==s2 | 判斷 | 
| s1!=s2 | 對(duì)大小寫敏感 | 
| <,<=,>,>= | 利用字符在字典中的順序進(jìn)行比較,對(duì)大小寫敏感 | 
①使用getline讀取一整行
如果直接用 cin 輸入的話,他會(huì)從第一個(gè)非空白符開始讀取,直到遇見下一處空白為止。
 若想要那被忽略掉的空白符,那么就會(huì)用到getline語句。
 代碼如下(示例):
②處理string對(duì)象中的字符
此處用到了頭文件 cctype
| isalnum( c ) | 當(dāng)c是字母或數(shù)字時(shí)為真 | 
| isalpha( c ) | 當(dāng)c是字母時(shí)為真 | 
| iscntrl( c ) | 當(dāng)c是控制字符時(shí)為真 | 
| isdigit( c ) | 當(dāng)c是數(shù)字字符時(shí)為真 | 
| isgraph( c ) | 當(dāng)c不是空格但可打印時(shí)為真 | 
| islower( c ) | 當(dāng)c是小寫字母時(shí)為真 | 
| isprint( c ) | 當(dāng)c是可打印字符時(shí)為真 | 
| ispunct( c ) | 當(dāng)c是標(biāo)點(diǎn)符號(hào)時(shí)為真 | 
| isspace( c ) | 當(dāng)c是空白時(shí)為真(空格、制表符、回車、換行、進(jìn)紙符) | 
| isupper( c ) | 當(dāng)c是大寫字母時(shí)為真 | 
| isxdigit( c ) | 當(dāng)c是十六進(jìn)制時(shí)為真 | 
| tolower( c ) | 如果c是大寫字母,則輸出小寫字母,否則原樣輸出 | 
| toupper( c ) | 與上相反 | 
要想處理string中的一部分字符
 一種是可以像C那樣使用下標(biāo);
 還有一種是使用迭代器(??)
2.vector
學(xué)完vector之后,第一印象是感覺這個(gè)有點(diǎn)像數(shù)據(jù)結(jié)構(gòu)里邊講的棧,但它比棧靈活多了
(1)初始化
1、引用不可以成為vector的元素,因?yàn)樗皇菍?duì)象
 2、可以用花括號(hào)初始化每一個(gè)值
 3、可以用括號(hào)指定元素個(gè)數(shù)或相同的元素值
 4、只能使用直接初始化,不可以使用拷貝初始化(只有在類型相同的時(shí)候才可以拷 貝)
 5、適用于三種情況:①初始值已知且數(shù)量較少
 ???????????????????②初始值是另一個(gè)vector對(duì)象的副本
 ???????????????????③所有元素的初始值都一樣
(2)向vector中添加元素
舉個(gè)書上的例子
vector<int> v; //空vector對(duì)象 for(int i=0;i!=100;++i)v.push_back(i); //依次把整數(shù)值放到v的尾端,相當(dāng)于棧的后入 //循環(huán)結(jié)束后v有100個(gè)元素,從0到99(3)vector的其他操作
這些操作基本上和string的一些操作差不多
| v.empty() | 如果v不含有任何元素,返回真;反之,則假 | 
| v.size() | v中元素的個(gè)數(shù) | 
| v[n] | 返回v中第n個(gè)位置上元素的引用 | 
| v1=v2 | 用v2中元素的拷貝替換v1中的元素 | 
| v1={a,b,c…} | 用列表中元素的拷貝替換v1中的元素 | 
| v1==v2 | v1和v2相等當(dāng)且僅當(dāng)它們的元素?cái)?shù)量相同且對(duì)應(yīng)位置的元素值都相同 | 
| <,<=,>,>= | 以字典順序進(jìn)行比較 | 
vector注意!!!
vector的下標(biāo)類型和string的一樣,都是 size_type 類型。不能用下表形式添加元素舉個(gè)栗子
 比如向vector對(duì)象中添加10個(gè)元素
在這里邊,第一個(gè)for循環(huán)是錯(cuò)誤的,v是一個(gè)空vector,不包含任何元素,所以也就不存在可以通過下標(biāo)去訪問元素。
 要想添加元素,就目前而言,只能用push_back(t),向尾端添加元素。
總結(jié)
以上是生活随笔為你收集整理的C++学习笔记,坚持自律!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: linux NTP服务器搭建
- 下一篇: 511遇见易语言分割文本
