c primer Unit3 標準庫型別

2021-09-25 17:55:00 字數 3063 閱讀 4837

c++定義的基本型別基礎上兩種重要的標準庫型別:string、vector

之前程式中所使用的std::cin,通過使用::操作符(作用域操作符)來說明右運算元可以在左運算元的命名空間中找到。

可以通過using宣告來不使用字首而使用命名空間中的名字。

using std::cin;
warning:1.每個名字都需要使用一次using宣告

2.可以把經常用的using宣告放在標頭檔案中,但是沒必要

#includeusing std::string;
後文均假設程式必須的#include和using宣告已經給出。

常用建構函式

string s1;

預設建構函式,s1為空串 

string s2(s1);

將s2初始化為s1的乙個副本

string s3("value");

將s3初始化為乙個字串字面值副本

string s4(n, 'c');

將s4初始化為字元'c'的n個副本

string型別的輸入操作符:1.讀取並忽略開頭所有的空白字元(如空格,換行符,製表符)

2.讀取字元直到再次遇到空白符,讀取終止。

int main()

/*input

hello world*/

/*output

hello*/

int main()

函式getline接受兩個引數:乙個輸入流物件和乙個string物件。

warning:這個一行不是在終端中看到的一行(那個黑框是可以調整大小的),這個一行的定義主要由換行符來決定。

int main()

s.empty()

如果s為空串則返回true,否則返回false

s.size()

返回s中字元的個數

int main()

/* output */

/*the size of the expense of spirit

is 22 characters, including the newline

*/

許多類型別都定義了一些配套型別(companion type),通過這些配套型別,可以做到庫使用與機器無關(machine-independent)。

s.size()返回的是string::size_type型別,所以不要把size的返回值賦給乙個int變數。

標頭檔案:cctype

cctype定義函式:略

#includeusing std::vector;
vector是同一型別的物件的集合,每個物件都有乙個對應的整數索引值。

vectorv1;

vector儲存型別為t的物件,預設建構函式v1為空。

vectorv2(v1);

v2是v1的乙個副本。

vectorv3(n,i);

v3是含有n個值為i的元素。

vectorv4(n);

v4是含有值初始化的元素的n個副本。

v.empty()

如果v為空則返回true,否則返回false

v.size()

返回v中的元素個數

v.push_back(t)

在v的末尾增加乙個值為t 的元素

與string類相似,vector中size函式返回的型別為vector::size_type

int main()

/* input */

/*c++ is so awesome!

^z*/

/* output */

/*c++

isso

awesome!

*/

warning:下標操作只能提取已經確實存在的元素。

除了使用下標來訪問容器中的元素,還提供迭代器(iterator)方法。

標準庫為每種標準容器(include vector)都提供了一種迭代器型別。而所有的標準庫容器都定義了相應的迭代器型別,而只有少數的容器支援下標操作。

故迭代器對所有容器均適用(amazing),下標操作卻不是。

每個標準庫都定義了乙個名為iterator的成員。如vector:

vector::iterator iter;
1.容器定義了一對名為beginend的函式,用於返回迭代器。

若容器中有元素,begin返回的迭代器指向第乙個元素。

由end操作返回的迭代器指向vector的末端元素的下乙個,即指向乙個不存在的元素。

若容器為空,begin和end返回的迭代器相同。

2.迭代器型別可以通過解引用操作符(*操作符)來訪問迭代器所指向的元素。

int main()

/*c++ is so awesome!

^zc++

isso

awesome!

*/

顧名思義,只能讀取元素而不能改變其值。

int main()

第3章 標準庫型別 3

3.3 標準庫vector型別 vector是同一種型別的物件的集合,每個物件都有乙個對應的資料索引值。和string物件一樣,標準庫將負責管理與儲存元素相關的記憶體。我們把vector稱作容器,是因為它可以包含其他物件。乙個容器中的所有物件都必須是同一種型別的。vector是乙個類模板 class...

Python3標準庫 statistics統計計算

statistics模組實現了很多常用的統計公式,允許使用python的各種數值型別 int float decimal和fraction 來完成高效計算。共支援3種形式的平均值 均值 mean 中值或中位數 median 以及眾數 mode 可以用mean 計算算術平均值。from statist...

c primer 3 標準庫型別

3.1 命名空間的using宣告 using宣告是對某個命名空間做引入。主要作用是簡化 編寫。比如用cout的三種方式 using namespace std using std cout std cout 3.2 標準庫string型別 定義和初始化 include using std strin...