c 小知識點

2021-10-07 04:33:53 字數 3682 閱讀 4906

c++小知識點

基本資料型別

**對於整型來說:**絕對值在10^9範圍以內可以定義成int型,在10^18範圍以內定義成long long型,

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-jficpdiv-1592110805047)(

注意:若long long型賦值大於2^31-1的初值,需要在初值後面加上ll,否則會編譯錯誤

printf輸出格式

%md不足m位的int型變數以m位右對齊輸出,%-md以左對齊方式輸出, 若數值大於m位,保持原樣輸出

%0md變數不足時用0填補

%.mf讓浮點數保留m為小數

常用的math函式:標頭檔案cmath

fabs(double x);//對double取絕對值

floor(double x);//對x向下取整

ceil(double x);//對x向上取整

pow(double r,double p);//r^p

sqrt(double x);//算數平方根

log(double x);//以自然對數為底的對數

sin(double x)、cos(double x)、tan(double x)//正弦、余弦、正切值

asin(double x)、acos(double x)、atan(double x)//反正弦、反余弦、反正切

round(double x);//對x四捨五入

注意:上面函式要求xdouble

標頭檔案cctype中的一些函式

總的來說常用的只有以下幾個

isalpha字母(包括大小寫)

islower(小寫字母)

isupper(大寫字母)

isalnum(字母大小寫+數字)

isdigit(檢查是否為數字)

isblank(space和\t

isspace(space\t\r\n)

tolower(轉為小寫字母)

toupper(轉為大寫字母)

string常用功能

1、初始化

string s;//預設初始化,乙個空字串

string s1("ssss");//s1是字面值「ssss」的副本

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

string s3=s2;//s3是s2的副本

string s4(10,'c');//把s4初始化,長度為10的 c的字串

string s5="hiya";//拷貝初始化

string s6=string(10,'c');//拷貝初始化,生成乙個初始化好的物件,拷貝給s6

//char cs="12345";

string s7(cs,3);//複製字串cs的前3個字元到s當中

// string s8="asac";

string s9(s8,2);//從s8的第二個字元開始拷貝,不能超過s8的size

//string s10="qweqweqweq";

string s11(s10,3,4);//s11是s10從下標3開始4個字元的拷貝,超過s10.size出現未定義

//字串中的find函式,若找不到字元,會返回string::npos,即是-1;

string s1=「hello,word";

if(s1.find(h)!=string:npos)

flag=1;

string 類提供了 6 種查詢函式,每種函式以不同形式的 find 命名。

這些操作全都返回 string::size_type 型別的值,以下標形式標記查詢匹配所發生的位置;

或者返回乙個名為 string::npos 的特殊值,說明查詢沒有匹配。string 類將 npos 定義為保證大於任何有效下標的值。

s1.erase(4,1);//去除4位置上 乙個字元

s1.erase(3);//從位置3開始去除字元到結尾

//在0位置插入len個'0'

s.insert(0,len,'0');

sort(s1.begin(),s1.end(),cmp);//給s1字串中排序

2、數值轉換:在標頭檔案string中

|—stoi(s,p,b)把字串s從p開始轉換成b進製的int;

|—stol(s,p,b)long;

|—stof(s,p)float;

|—stod(s,p)double

當然,也可以由其它型別轉換成string型別(標頭檔案)

to_string

3、函式

string s="ahahahhaaha";

s.length() s.size()//取串的長度

string s2=s.substr(4);//從下標4開始一直到結束

string s3=s.substr(5,3) //從下標5開始 擷取3個字元

s.find("ha",3)//從位置3開始查詢「ha」子串

s.find*()

s.compare(s2)//和strcmp函式一樣,如果兩個字串相等,那麼返回0,呼叫物件大於引數返回1,小於返回-1

for的新的運用方式
int arr[4] = ;

for (int i : arr)

cout << i << endl; // 輸出陣列中的每⼀乙個元素的值,每個元素佔據⼀行,但是只能用於輸出,而不能用於修改陣列元素中的值

int arr[4]=;

for(int &i:arr)

i=i*2; //利用引用可以修改陣列中的值

c++的位運算

位於標頭檔案bitset中

#include#includeusing namespace std;

int main()

st(2); //測試下標為2處是否⼆二進位制位為1

b.set(4); //把b的下標為4處置1

b.reset(); //所有位歸零

b.reset(3); //b的下標3處歸零

b.flip(); //b的所有⼆二進位制位逐位取反

unsigned long a = b.to_ulong(); //b轉換為unsigned long型別

return 0;

}

c 小知識點

1 陣列間拷貝只能使用for迴圈乙個乙個拷貝,但是vector之間可以直接用乙個vector初始化另乙個vector。int main 2 vector 之間比較大小直接用 3 對於實參型別相同,並且數目不確定的情況下我們可以傳遞名為initializer list的標準庫型別。int func s...

C 小知識點

1.在c 中,每個程式必須包含乙個main 的入口函式,只有這樣,這個專案才能執行.2.函式包括 函式名,引數,返回值.3.return 是c 的預定義語句,提供了終止函式的一種方法 return 0表示成功執行正常退出.4.using namespace std 是指引用c 的標準庫.5.c 的4...

c小知識點

一 rand rand 函式用來產生隨機數,但是,rand 的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,因此在一定範圍內可以看成是隨機的。rand 會返回乙個範圍在0到rand max 至少是32767 之間的偽隨機數 整數 在呼叫rand 函式之前,可以使用srand 函式設定隨機數...