第3章 字符串、向量和數(shù)組

3.1 命名空間的using聲明

  1. using聲明:每個using聲明引入命名空間的一個成員掷酗;頭文件中的代碼一般不應使用using聲明(或者直接加一句 using std::std 表示引用整個命名空間的名字)剪撬。

3.2 標準庫類型string

  1. 標準庫類型string 表示可變長的字符序列。

3.2.1 定義和初始化string 對象

  1. string初始化:用數(shù)字和字符初始化歹袁,則string對象內容是將給定字符連續(xù)重復給定次數(shù)得到的序列。
  2. 直接初始化和拷貝初始化:使用等號(=) 的是拷貝初始化寝优,它的的是直接初始化条舔。

3.2.2 string 對象上的操作

  1. getline:從輸入流中讀入內容直到讀入換行符,保留空白符乏矾,但換行符不存入string對象中孟抗。
  2. string::size_type:由于size返回的是一個無符號整型數(shù),因此切記钻心,如果在表達式中混用了帶符號數(shù)和無符號數(shù)將可能產生意想不到的結果凄硼。
    假設n是一個具有負值的int,則表達式 s.size()<n的判斷結果幾乎肯定是true捷沸。因為負值n會自動轉換成一個比較大的無符號值摊沉。
  3. 字面值與string:字符字面值和字符串字面值可以轉化為string對象,相加時加號兩側的運算對象至少有一個是string型痒给。

3.3 標準庫類型vector

  1. 標準庫類型vector表示對象的集合说墨,也稱為容器骏全。其中所有對象的類型都相同。集合中的每個對象都有一個與之對應的索引婉刀,索引用于訪問對象吟温。
  2. 實例化:根據(jù)模版創(chuàng)建類或函數(shù)的過程,必須指明實例化成何種類型突颊。不存在包含引用的vector鲁豪。

3.3.1 定義和初始化vector對象

  1. c++語言提供的初始化方式大多數(shù)情況下都是可以互相等價的使用。但也有例外:
    a:使用拷貝初始化時(即使用=時)只能提供一個初始值律秃;
    b:如果提供的是一個類內初始值爬橡,則只能使用拷貝初始化或者花括號初始化;
    c:如果提供的是初始元素值的列表棒动,則只能使用花括號進行初始化列表糙申;
    例:vector<int> ivec(10) //10個元素,每個都是初始化為0
    vector<int> ivec{10} //1個元素船惨,該元素的值是10
    總而言之:花括號{} 用來列表初始化柜裸,弧括號()用來指定元素個數(shù)的初始化。

3.4 迭代器介紹

迭代器是一種訪問容器元素的方式或工具粱锐,功能與下標類似疙挺。

3.4.1 使用迭代器

  1. 迭代器成員:begin和end運算符的具體類型由對象是否是常量決定,cbegin和cend始終得到const_iterator怜浅。(一般來說铐然,我們不清楚也不在意迭代器準確的類型到底是什么)
  2. 箭頭運算符(->):把解引用和成員訪問兩個操作結合在一起。it->mem和(*it).mem表達的意思相同恶座。

3.4.2 迭代器運算

  1. 迭代器算術運算:兩個迭代器搀暑,指向同一容器中的元素或尾元素的下一位置,比較的是位置的前后跨琳;相減得到different_type型的有符號整數(shù)自点,表示兩個迭代器的距離。

3.5 數(shù)組

3.5.1 定義和初始化內置數(shù)組

  1. 定義數(shù)組:數(shù)組是一種符合類型脉让,必須指定數(shù)組類型樟氢,不能使用auto由初始值推斷;類型不能是引用侠鳄。
  2. 字符數(shù)組:可以使用字符串字面型初始化,數(shù)組中需要空間放空字符死宣。
  3. 復雜數(shù)組聲明:從數(shù)組名字開始按照由內向外的順序閱讀伟恶,如int *(&a)[10]表示a是對數(shù)組引用,該數(shù)組包含10個int*毅该。

3.5.3 指針和數(shù)組

  1. 數(shù)組特性:很多用到數(shù)組的地方博秫,編譯器都會自動的將其替換為一個指向數(shù)組首元素的指針潦牛。(必須指出,當使用decltype關鍵字時上述轉換不會發(fā)生)
  2. 首指針和尾后指針:使用標準庫函數(shù)begin()和end()可以得到數(shù)組的首指針和尾后指針挡育;提供這兩個指針可以將數(shù)組拷貝初始化vector對象巴碗;尾后指針不指向具體元素,不能解引用或遞增即寒。
  3. 指針比較:只要兩個指針指向同一個數(shù)組的元素或尾元素下一個位置橡淆,就能用關系運算符比較前后;兩個指針相減的結果類型是有符號類型ptrdiff_t母赵。
  4. 小標和指針:標準庫類型限定下標必須是無符號類型逸爵,而內置的下標運算無此要求。

3.5.5 與舊代碼的接口

  1. string轉char*:s.c_str()函數(shù)將string對象s凹嘲,轉化為一個C風格的字符串师倔,但無法避免s改變后之前返回的字符串失去效用

3.6 多維數(shù)組

  1. 多維數(shù)組初始化:使用花括號的形式,未列出的元素執(zhí)行默認值初始化周蹭。
  2. 范圍for處理多維數(shù)組:除最內層循環(huán)外趋艘,其他所有循環(huán)的控制變量都應該是引用類型,以避免這些數(shù)組形式的元素被自動轉換成指向數(shù)組首元素的指針凶朗。
  3. 多維數(shù)組指針:多維數(shù)組的指針是指向內層數(shù)組的指針瓷胧;避免指針類型混淆可使用auto或decltype,begin()和end()俱尼,類型別名簡化多維數(shù)組的指針抖单。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市遇八,隨后出現(xiàn)的幾起案子矛绘,更是在濱河造成了極大的恐慌,老刑警劉巖刃永,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件货矮,死亡現(xiàn)場離奇詭異,居然都是意外死亡斯够,警方通過查閱死者的電腦和手機囚玫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來读规,“玉大人抓督,你說我怎么就攤上這事∈鳎” “怎么了铃在?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我定铜,道長阳液,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任揣炕,我火速辦了婚禮帘皿,結果婚禮上,老公的妹妹穿的比我還像新娘畸陡。我一直安慰自己鹰溜,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布罩锐。 她就那樣靜靜地躺著奉狈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涩惑。 梳的紋絲不亂的頭發(fā)上仁期,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音竭恬,去河邊找鬼跛蛋。 笑死,一個胖子當著我的面吹牛痊硕,可吹牛的內容都是我干的赊级。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岔绸,長吁一口氣:“原來是場噩夢啊……” “哼理逊!你這毒婦竟也來了?” 一聲冷哼從身側響起盒揉,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晋被,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后刚盈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡洛,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年藕漱,在試婚紗的時候發(fā)現(xiàn)自己被綠了欲侮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡肋联,死狀恐怖威蕉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情橄仍,我是刑警寧澤忘伞,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響氓奈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鼎天,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一舀奶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斋射,春花似錦育勺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桑包,卻和暖如春南蓬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哑了。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工赘方, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弱左。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓窄陡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拆火。 傳聞我的和親對象是個殘疾皇子跳夭,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容