目錄
- C++程式的必要結構
- 頭檔案
- 命名空間
- 程式主體
C++程式的必要結構
對于每一個C++程式來說,都有個必要的結構,
話不多說,咱們直接進入正題
先上Hello World!
#include<stdio.h>
int main(){
printf("Hello World!\n");
return 0;
}
這是C語言的???
#include<iostream>
using namespace std;
int main(){
//printf("Hello World!\n");
//printf在C++中依然可以使用
cout<<"Hello world"<<endl ;
//cout C++里新增的輸出方式,會在下一章中講到
return 0;
}
這是C++的???
其中包含了3個主要部分,分別是
- 頭檔案
- 命名空間
- 程式主體
頭檔案
和C語言一樣,在C++中我們用的大多數函式都是前人寫好放在頭檔案中的(eg:cout,pritf()),我們不可能每次都重新去書寫這些函式,所以C++程式的第一個必要結構就是參考頭檔案了,把前人寫的函式,直接呼叫,
這里本人將列舉一些常用頭檔案中常用的函式,至于其作用我們后面再談
注意:下面的函式并不是頭檔案中所有的函式,只是本人認為常用的
首先,最最最重要的萬能頭檔案
< bits/stdc++.h >
但是有些比賽不允許使用萬能頭檔案,所以其他頭檔案還是需要了解下的
< iostream >
輸入輸出流,in out stream
cin cout
getline()
< cstdio >
C++中的< stdio.h >,但是還是有些不同
getchar() putchar()
gets() puts()
scanf() printf()
freopen() fclose()
< cmath >
數學函式集合
log() tan()
sin() cos()
pow() exp()
sqrt() abs()
< algorithm >
標準演算法庫
max() min()
swap() sort()
fill() unique()
count() find()
lower_bound() upper_bound()
< cstring >
C++里的< string.h >
功能幾乎和C語言中的< string.h >一樣
memset()
memcpy()
strcpy()
memcmp()
strlen()
< string >
STL中的一員,定義了一個新的資料型別用于處理字串
里面多載了+,-,=,==,!=等運算子,使對于字串的使用變得非常方便
(多載將在下一章講解)
size() empty()
at() copy()
length() insert()
還有一些其他STL的頭檔案就不一一列舉了,后面講STL時會再講到
命名空間
其實上面的Hello World其實也可以這么寫
#include<iostream>
int main(){
std::cout<<"Hello world"<<std::endl ;
//std::printf("Hello world\n");
return 0;
}
那對比之前
#include<iostream>
using namespace std;
int main(){
cout<<"Hello world"<<endl ;
//printf("Hello world\n");
return 0;
}
命名空間是C++中新引進的概念,命名空間是一種特殊的作用域,你可以在程式中(包括其他命名空間中)呼叫不同命名空間中的函式,結構體,類,變數,這樣就可以使程式更為模塊化,且可以很好的防止命名沖突
C++自帶一個std命名空間,C++標準函式或者物件都是在std中定義,我們所常用的也是std命名空間中的,所以得標明是std命名空間,因為其他命名空間也可以有printf()這個函式
而using namespace 是什么意思呢
為了便于理解
你可以認為這個陳述句是把一個命名空間當成默認的命名空間,即該陳述句下的未標明命名空間的函式或變數全是默認的這個命名空間內的
舉個栗子:
#include<iostream>
#include<cstdio>
namespace zzz{
struct num_node{
int x;
};
void printf(int x){//zzz命名空間中也可以有printf()
std::printf("%d",x);
//在zzz命名空間內呼叫std命名空間內的printf()
}
}
using namespace zzz;//讓默認的命名空間為zzz
num_node x;//默認zzz命名空間后就不需要注明了
//相加也可以加
int main(){
num_node x;
std::cout<<"Hello world"<<std::endl ;
zzz::printf(1);
printf(1);//這個printf()是默認命名空間zzz中的哦
return 0;
}
因為我們使用的主要是std命名空間,所以我們一般會將其設為默認的命名空間,即using namespace std;
這樣,我們后面使用std命名空間內的函式或物件時,就不用多加個std::了
完美的偷了個懶,嘿嘿
當然你也可以不去理解命名空間的意義,只是把這個當成C++程式的一個模板,那你的C++學習之旅必將會少一分樂趣,
#include<iostream>
using namespace std;
int main(){
return 0;
}
程式主體
這個就沒什么好講的了,和C語言一樣,只是多了可以用一些新的東西(函式,類…),牢記那些規則,語法,盡情的去創作吧
本章字數可能有點多,在沒有超鏈接的情況下達到2500+,但是確實C++學習中十分重要的部分,特別是命名空間的理解,十分重要
也算是完成了第一次的周更,以后還會周更的,喜歡就點個贊吧,喜歡這個專欄的可以點個關注,我們下周見,
下一章—多載
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/237686.html
標籤:其他
