c Primer第三章 字串,向量,陣列

2021-10-22 19:40:52 字數 3716 閱讀 9607

標頭檔案中不包含using宣告,可能會導致衝突

string s1

(s2)

;string s1

(n,'c');

string s1

("value"

);

1.s寫入輸出流os中,返回os

os<2.is讀取字串到s,以空白字串分割,返回is

is>>s;

3.從is中讀取一行賦給s,返回is,包括空格,以回車結束

getline

(is,s)

;int main()

非int輸入結束

int value;

while

(cin>>value)

while

(cin>>value)

if(cin.

get()!=

'\n')4.

<

,<=

,>

,=>

,字典序比較,大小寫敏感

5.獲取字串長度,

size

()返回的是無符號整型,

string:

:size_type len = line.

size()

;auto len = line.

size()

;

string str

("just string");

for(auto c:str)

cout<("just string");

for(auto &c:str)

c =toupper

(c);

cout<不同,返回第一對相異字元的比較結果

字面值不能直接相加

string s1 =

"hello"

+","

; wrong

函式

value

isalnum( c )

數字isalpha( c )

字母iscntrl( c )

控制字元

isdigit( c )

數字isgraph( c )

不是空格但是可列印

islower( c )

小寫字母

isprint( c )

可列印字元

ispunct( c )

標點符號

isspace( c )

空白isupper( c )

大寫字母

isxdigit( c )

十六進製制

tolower( c )

轉小寫toupper( c )

轉大寫

vector<

t>

v2(v1)

;vector<

t>

v3(n,val)

;vector<

t>

v4(n)

;執行預設初始化

vector<

t>

v5(a,b,c...

)vector<

t> v6 =

與(n)的區別

乙個元素為n和n個預設初始化元素

1.當迴圈體內包含向vector物件新增元素的語句,則不可使用範圍for迴圈,end()無窮無盡

2.使用size_type

vector::size_type

函式value

v.push_back()

$1600

手機$12

導管$1

for的使用和string一致

auto b = v.

begin()

,e = v.

end(

);

函式

value

*iter

返回所指元素的引用

iter->mem

等價於(*iter).mem

iter->empty

(*iter).empty()

–iter,++iter

前進,後退一位

itrer.begin() ; iter.end()

可以讀寫

iter.cbegin() ; iter.cend()

只能讀取

vector< int >::iterator it

可以讀寫

vector< int >:: const_iterator it

只可以讀

for

(auto it = s.

begin()

;it != s,

end();

++it )

*it =

toupper

(*it)

;

有正有負,是元素之間的間隔

auto mid = v.

begin()

+ v.

size()

/2;

指標可以進行加法運算

int *beg =

begin

(ia)

;int *last =

end(ia)

;int *p = beg + n;

auto n =

end(ia)

-begin

(ia)

;while

(beg < last)

beg++

;

const char *str = s.

c_str()

;char *str1 =

(char*

)s.c_str()

;//舊版強制轉換

目前還是vector好

int arr =

;vector

ivec

(begin

(arr)

,end

(arr));

vectoe

ivec1

(arr+

1,arr+4)

;

多維陣列訪問除最內層外,其他層全是引用

1.auto修改

int cnt =0;

int ia[3]

[4]=

,,};

for(auto &row : ia)

for(auto &col : row)

2.auto訪問

for

(const auto &row : ia)

for(auto col : row)

cout<

for

(auto p =

begin

(ia)

;p !=

end(ia)

;++p)

for(auto q =

begin

(*p)

;q !=

end(

*p);

++q)

C Primer 第三章 字串 向量和陣列

string和vector是兩種最重要的標準庫型別。內建陣列是一種更基礎的資料型別,string和vector是對陣列的某種抽象。命名空間的using宣告 使用using宣告可以更方便的使用命名空間中的成員。using namespace name 新增該語句後可以直接飲用name,而不用再新增na...

第三章 字串 向量和陣列

標頭檔案不應包含using宣告。c 標準一方面對庫型別所提供的操作做了詳細規定,另一方面也對庫的實現者做出了一些效能上的需求。因此,標準庫型別對於一般應用場合來說有足夠的效率。如果使用等號 初始化乙個變數,實際上執行的是拷貝初始化 copy initialization 編譯器把等號右側的初始值拷貝...

第三章 字串 向量和陣列

1 以命名空間std為例,兩種宣告方式 1 using std cin 或cout,endl等 2 using namespace std 2 標頭檔案中不應包含using宣告。1 初始化的方式分為拷貝初始化 使用等號 與直接初始化 不使用等號 1 使用getline讀取一整行 直接讀只會讀乙個單詞...