刷題中遇到的c 中小的知識點(不斷更新)

2021-10-04 14:37:27 字數 2091 閱讀 4737

1.判斷變數型別

//標頭檔案

#include

//輸出變數i的型別

cout<<

typeid

(i).

name()

<

string b

("abc");

cout << b.

capacity()

<< endl;

cout << b.

size()

<< endl;

if(b[3]

=='\0'

) cout <<

"yes"

<< endl;

else

cout <<

"no"

<< endl;

執行結果

3

3yes

std::string:標準中未規定需要\0作為字串結尾。編譯器在實現時既可以在結尾加\0,也可以不加。(因編譯器不同)

但是,當通過c_str()或data()(二者在 c++11 及以後是等價的)來把std::string轉換為const char *時,會發現最後乙個字元是\0。但是c++11,string字串都是以』\0』結尾。

3 string中的幾個函式

a = s.

substr

(i,len)

;//字串a為 字串s的從下標i開頭,長度為len的字串

4.兩個vector物件的拼接

//把v2拼接到v1的後邊

v1.insert

(v1.

end(

),v2.

begin()

,v2.

end())

;

3.二維陣列的建立和訪問

//建立

int matrix[

4]=,

,,};

//訪問有兩種方式

//方式一

int(

*p)[4]

=matrix (或&matrix[

0]);

cout << p[0]

[0]<< endl;

//方式二

int*p=matrix[0]

=&matrix[0]

[0]=

*matrix;

cout << p[0]

<<

" "<<< endl;

參考鏈結

4.delete刪除指標變數

用delete刪除指標之後,還要將指標置為nullptr,因為我們在刪除乙個指標之後,編譯器只會釋放該指標所指向的記憶體空間,而不會刪除這個指標本身。

參考文章

cout 列印指標

一般來說如果給cout提供乙個指標,它將列印位址,但如果指標的型別為char* ,則cout將顯示指向的字串。如果想列印字串的位址需(int*)

const與多重指標

const int **p

指標p為指向const int型別的指標的指標。所以p並不是const型別,因此可以進行如下操作。 ++(*p)。

文章1文章2

c++ 函式前面和後面 使用const 的作用:

前面使用const 表示返回值為const

後面加 const表示函式不可以修改class的成員

string和int的互相轉換

//string to int

int n =

atoi

(str.

c_str()

);//int to string

string s =

to_string

(n);

python遇到的知識點

python遇到的知識點,記錄一下。方便學習。查了資料,關於open 的mode引數 r 讀 w 寫 a 追加 r r w 可讀可寫,檔案若不存在就報錯 ioerror w w r 可讀可寫,檔案若不存在就建立 a a r 可追加可寫,檔案若不存在就建立 對應的,如果是二進位制檔案,就都加乙個b就好...

工作中小知識點彙總(c )

1 oop 實體與資料庫字段轉換 注意 此時實體字段必須和資料庫中查詢的字段列名相同 list modelextend.getbydatatablepart ds.tables 0 實體和datatable都有的資料才回給實體賦值 public static listgetbydatatablepa...

刷題知識點總結(C )

string中尋找子串 替換字串 string字串判斷是否被訪問過 部分揹包問題通式 區間貪心 哈夫曼樹 將char字元變成int 向下取整和向上取整 當使用二維陣列超時的時候,可以使用二維map lower bound 和upper bound set iterator tp 遇到有關圖的題時,鄰...