1. 程式人生 > >[C++ primer學習筆記] 3.2.1 定義和初始化string物件

[C++ primer學習筆記] 3.2.1 定義和初始化string物件

類可以定義多種初始化物件的方式:或初始值的數量不同; 或初始值的型別不同。

初始化的不同方式:

  • 拷貝初始化:使用等號(=)初始化變數,實際上執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中去
  • 直接初始化:不使用等號,則執行的是直接初始化
  • 當初始值只有一個時,使用直接/拷貝初始化都行;
  •  初始化要用到的值有多個,一般只能使用直接初始化 [eg(6)]; 若用拷貝初始化,需要顯示的建立一個臨時物件用於拷貝[eg(7)]
(1)string s1;   //預設初始化,s1是一個空字串

(2)string s2(s1);   //s2 是s1的副本

(3)string s2=s1; //等價於s2(s1),s2是s1的副本

(4)string s3("value"); //s3是該字串字面值的副本,除了字面值最後的那個空字元外

(5)string s3="value"; //與上等價

(6)string s4(n,'c'); //把 s4初始化為由連續n個字元c組成的串

(7)string temp (n,'c');   string s4=temp;

相關推薦

[C++ primer學習筆記] 3.2.1 定義初始string物件

類可以定義多種初始化物件的方式:或初始值的數量不同; 或初始值的型別不同。初始化的不同方式:拷貝初始化:使用等號(=)初始化變數,實際上執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中去直接初始化:不使用等號,則執行的是直接初始化當初始值只有一個時,使用直接/

C++】 string學習筆記1——定義初始string物件

string學習筆記1 c++初始化string物件的方式有以下幾種常見的方式。 /**定義和初始化string**/ string s1; ///預設的初始化,s1為一個空字串。 string s2 = s1;

[C++ primer學習筆記] 3.1 名稱空間的using宣告

1、using  宣告的形式:using namespace::name;一旦宣告,就可以直接訪問名稱空間中的名字了2、每個名字都需要獨立的using宣告例:using std::cin;using std::cout;using std::endl;3、標頭檔案不應包含us

C++ Primer學習筆記2

容器和演算法 順序容器的操作 容器元素的初始化: C<T> c;   //建立一個名為c的空容器。C是容器型別名,T是元素型別,適用於所有容器 C<T> c2(c);//建立容器c的副本,c2和c必須具有相同的容器型別,並存放相同型別的元素。適用於所

C++ Primer 學習筆記與思考_7 voidvoid*指針的使用方法

能夠 amp space turn begin member use mem urn (一)void的含義 void的字面意思是“無類型”,void差點兒僅僅有“凝視”和限制程序的作用,由於從來沒有人會定義一個void變量,讓我們試著來定義: void a;

C++Primer學習:第2章 變數基本型別

第2章 變數和基本型別2.1 基本內建型別2.2 字面值常量2.3 變數2.4 const限定符2.5 引用2.6 typedef 名字2.7 列舉2.8 類型別2.9 編寫自己的標頭檔案 2.1 基本內建型別2.1.1 字元型別: char 和 wchar_t , char

C++ Primer 學習筆記與思考_8 指標const的那些麻煩

(一)陣列的下標和指標的關係 我們以前知道,在表示式中使用陣列名時,實際使用的是指向陣列第一個元素的指標。當我們使用下標訪問陣列時,實際上是對指向陣列元素的指標做下標操作,只要陣列指向陣列元素,就可以對它進行下標操作。像下面程式中的p[-1]這種表示方法,可能乍一看比較彆扭

c++學習筆記 vptr指標的分佈初始

{public: Child(int a = 0, int b = 0) {  this->b = b; } virtual void print() {  cout << "我是兒子" << endl; }protected:private: int b;};void play

C++ Primer 學習筆記_5_變量基本類型(續2

key 情況 boa 類和對象 類定義 優點 splay 查看 變量定義  變量和基本類型 七、枚舉 枚舉不但定義了整數常量集,並且還把它們聚集成組。 枚舉與簡單的const常量相比孰優孰劣, 通過以下一段代

c++ primer 學習筆記——函式的定義與宣告

c++語句 宣告語句:int stone;指出變數的型別為int型,同時用變數stone標識儲存在該記憶體單元中的值。 賦值語句:將值賦給儲存單元。stone=5;或者pounds=stonetolb(stone); 初始化:在宣告變數的同時給變數賦值。int pou

C++Primer學習筆記_13.1 拷貝、賦值與銷燬

C++primer學習筆記——第13章拷貝控制 13.1拷貝、賦值與銷燬 13.1.1拷貝建構函式 定義: 建構函式第一個引數是自身型別的引用。 任何額外引數都有預設值 合成拷貝建構函式: 如果沒有自定義拷貝建構

torch學習筆記3.2:實現自定義模組(cpu)

在使用torch時,如果想自己實現一個層,則可以按照《torch學習筆記1:實現自定義層》 中的方法來實現。但是如果想要實現一個比較複雜的網路,往往需要自己實現多個層(或類),並且有時可能需要重寫其他模組中已有的函式來達到自己的目的,如果還是在nn模組中新

C++ Primer學習筆記』Chapter 3 string物件、vector物件以及陣列的配套型別,C風格字串問題處理區別

string物件、vector物件以及陣列(指標)配套的型別 無論是string物件還是vector物件,它們都有一個size()的成員函式,因此就可能會有這樣的一個疑問:成員函式size()返回的到底是什麼型別?之所以可能會有而不是一定會有是因為,當我們使用

C++Primer第五版 2.1.3節練習

練習2.5:指出下述字面值的資料型別並說明每一組內幾種字面值的區別。 (a).‘a’,L’a’, “a”,L”a”  (b).10 , 10u , 10L, 10uL, 012, 0xC  (c).3.14 , 3.14f , 3.14L  (d).10 , 10u, 10

[C/C++] C++ Primer學習筆記

轉義 寫到 十六進制 程序 結果 否則 筆記 end 情況 下面記錄我每天看書學到的以前不太清楚的概念和用法: Day 1 endl:具有輸出換行的效果,並刷新與設備相關聯的緩沖區。 註:在調試程序過程中插入的輸出語句都應刷新輸出流,否則可能會造成程序崩潰,將會導致程序出錯

Python學習筆記2.1)函數參數練習

col python學習 nbsp cnblogs print item info inf -- 關鍵字參數 和 命名關鍵字參數 # -*- coding: utf-8 -*- def print_scores(**kw): print(‘

Python學習筆記__2.2定義函數

編程語言 Python # 這是學習廖雪峰老師python教程的學習筆記1、定義函數定義一個函數需要有函數名、參數、函數體。函數體中最好還有 傳入的參數判斷 1.1、函數創建定義一個函數用def,數據類型檢查用isinstance。例子如下:def my_abs(x): if not

C++程式設計學習筆記 複習/拾遺 1

面向物件概述與c++輸入輸出 1 使用<iostream>時,由於C++的標準庫中所有識別符號都被定義於一個名為std的namespace中,因此其後必須帶上語句“using namespace std;”。 2 #include <iostr

c++primer學習筆記 string的一些額外操作

1.string除了與其他順序容器相同的建構函式,還額外支援另外三個建構函式。 構造string的方法 string s(cp, n) s是cp指向的陣列中前n個字元的拷貝。此陣列至少應該包

C++ primer 讀書筆記 9.2 容器庫概覽

模板類 list<int> deque<double> 也可以定義容器的容器, vector<string> vector<vector<string>> 迭代器 迭代器範圍 [begin, end)