日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++学习笔记,坚持自律!

發(fā)布時(shí)間:2023/12/20 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习笔记,坚持自律! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C++學(xué)習(xí)筆記

  • 前言
  • 一、變量和基本類型
    • 1.處理類型
      • (1)auto類型說明符
      • (2)decltype類型指示符
  • 二、字符串、向量和數(shù)組
    • 1.String
      • (1)初始化
      • (2)string對象上的操作
        • ①使用getline讀取一整行
        • ②處理string對象中的字符
    • 2.vector
      • (1)初始化
      • (2)向vector中添加元素
      • (3)vector的其他操作
      • vector注意!!!


前言

放了寒假了,也不能去外邊玩,游戲也玩的沒意思了。只能窩在家好好學(xué)習(xí)了哈哈。
之前做數(shù)據(jù)結(jié)構(gòu)題的時(shí)候,有好多都不會,然后就去CSDN上找那些大佬們做的,其中好多都是C++的,感覺C++好像很厲害,于是就買了一本C++的書,叫《c++ Primer》的書,第五版的,準(zhǔn)備自學(xué)!!!
做這個(gè)筆記也無非就是想督促一下自己,希望能堅(jiān)持下去吧!!
以下好多筆記都是源自于書上,若有侵權(quán),立馬刪除!!!


提示:筆記主要還是挑一些重點(diǎn)的來看吧,基本上是那些不用于C的。
如果大佬們還有自己認(rèn)為重要的知識點(diǎn),歡迎來補(bǔ)充~~~
感謝!!!

一、變量和基本類型

1.處理類型

(1)auto類型說明符

auto是讓編譯器自己去分析表達(dá)式所屬的類型
它會忽略頂層const,如果希望是頂層的,則需聲明出來

int i=1; const int ci=i, &cr=ci; auto b=ci; //b是一個(gè)整數(shù),ci的頂層const被忽略掉了 auto c=cr; //c是一個(gè)整數(shù),同上 auto d=&i; //d是一個(gè)整型指針 auto e=&ci //e是一個(gè)指向整數(shù)常量的指針,底層constconst auto f=ci; //ci的推演類型是int,f是const int

(2)decltype類型指示符

選擇并返回操作數(shù)的數(shù)據(jù)類型
decltype((variable))的結(jié)果永遠(yuǎn)是 引用
decltype(variable)的結(jié)果只有當(dāng)variable本身就是一個(gè)引用時(shí)才是引用

decltype(f()) sum=x; //sum的類型就是函數(shù)f的返回類型decltype((i)) d; //錯(cuò)誤:d是int&,必須初始化 decltype(i) d; //正確:e是一個(gè)(為初始化的)int

二、字符串、向量和數(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對象上的操作

操作作用
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+s2s1和s2連接
s1=s2賦值
s1==s2判斷
s1!=s2對大小寫敏感
<,<=,>,>=利用字符在字典中的順序進(jìn)行比較,對大小寫敏感

①使用getline讀取一整行

如果直接用 cin 輸入的話,他會從第一個(gè)非空白符開始讀取,直到遇見下一處空白為止。
若想要那被忽略掉的空白符,那么就會用到getline語句。
代碼如下(示例):

string line; //每次讀取一行,直到文件末尾? while (getline(cin,line))cout << line << endl; //line中不包含換行符,需要手動(dòng)添加

②處理string對象中的字符

此處用到了頭文件 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)符號時(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);
還有一種是使用迭代器(??)

//處理每個(gè)字符,用基于范圍的for語句 string str("some string"); //每行輸出str中的一個(gè)字符 for(auto c:str)cout << c << endl;

2.vector

學(xué)完vector之后,第一印象是感覺這個(gè)有點(diǎn)像數(shù)據(jù)結(jié)構(gòu)里邊講的棧,但它比棧靈活多了

(1)初始化

1、引用不可以成為vector的元素,因?yàn)樗皇菍ο?br /> 2、可以用花括號初始化每一個(gè)值
3、可以用括號指定元素個(gè)數(shù)或相同的元素值
4、只能使用直接初始化,不可以使用拷貝初始化(只有在類型相同的時(shí)候才可以拷 貝)
5、適用于三種情況:①初始值已知且數(shù)量較少
???????????????????②初始值是另一個(gè)vector對象的副本
???????????????????③所有元素的初始值都一樣

(2)向vector中添加元素

舉個(gè)書上的例子

vector<int> v; //空vector對象 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==v2v1和v2相等當(dāng)且僅當(dāng)它們的元素?cái)?shù)量相同且對應(yīng)位置的元素值都相同
<,<=,>,>=以字典順序進(jìn)行比較

vector注意!!!

vector的下標(biāo)類型和string的一樣,都是 size_type 類型。不能用下表形式添加元素

舉個(gè)栗子
比如向vector對象中添加10個(gè)元素

vector<int> v; //空vector對象 for(decltype ( v.size() ) i=0;i!=10;i++)v[i]=i; for(decltype ( v.size() ) i=0;i!=10;i++)v.push_back(i);

在這里邊,第一個(gè)for循環(huán)是錯(cuò)誤的,v是一個(gè)空vector,不包含任何元素,所以也就不存在可以通過下標(biāo)去訪問元素。
要想添加元素,就目前而言,只能用push_back(t),向尾端添加元素。

總結(jié)

以上是生活随笔為你收集整理的C++学习笔记,坚持自律!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。