【快播報】為什么需要命名空間?使用命名空間解決名字沖突
??一、為什么需要命名空間(問題提出)
命名空間是ANSIC++引入的可以由用戶命名的作用域,用來處理程序中常見的同名沖突。
在 C語言中定義了3個層次的作用域,即文件(編譯單元)、函數(shù)和復(fù)合語句。C++又引入了類作用域,類是出現(xiàn)在文件內(nèi)的。在不同的作用域中可以定義相同名字的變量,互不于擾,系統(tǒng)能夠區(qū)別它們。
(資料圖)
1、全局變量的作用域是整個程序,在同一作用域中不應(yīng)有兩個或多個同名的實(shí)體(enuty),包括變量、函數(shù)和類等。
例:如果在文件中定義了兩個類,在這兩個類中可以有同名的函數(shù)。在引用時,為了區(qū)別,應(yīng)該加上類名作為限定:
class A//聲明A類
{public:
void funl();//聲明A類中的funl函數(shù)
private:
int i; };
void A::funl() //定義A類中的funl函數(shù)
{…………}
class B //聲明B類
{public:
void funl(); //B類中也有funl函數(shù)
void fun2(); };
void B::funl() //定義B類中的funl函數(shù)
{ …………}
這樣不會發(fā)生混淆。
在文件中可以定義全局變量(global variable),它的作用域是整個程序。如果在文件A中定義了一個變量aint a=3;
在文件B中可以再定義一個變量aint a=5;
在分別對文件A和文件B進(jìn)行編譯時不會有問題。但是,如果一個程序包括文件A和文件B,那么在進(jìn)行連接時,會報告出錯,因為在同一個程序中有兩個同名的變量,認(rèn)為是對變量的重復(fù)定義。
可以通過extern聲明同一程序中的兩個文件中的同名變量是同一個變量。如果在文件B中有以下聲明:
extem int a;
表示文件B中的變量a是在其他文件中已定義的變量。由于有此聲明,在程序編譯和連接后,文件A的變量a的作用域擴(kuò)展到了文件B。如果在文件B中不再對a賦值,則在文件B中用以下語句輸出的是文件A中變量a的值: cout<<A; 得到a的值為3<="" p="">
2、程序中就會出現(xiàn)名字沖突。
在簡單的程序設(shè)計中,只要人們小心注意,可以爭取不發(fā)生錯誤。但是,一個大型的應(yīng)用軟件,往往不是由一個人獨(dú)立完成的,而是由若干人合作完成的,不同的人分別完成不同的部分,最后組合成一個完整的程序。假如不同的人分別定義了類,放在不同的頭文件中,在主文件(包含主函數(shù)的文件)需要用這些類時,就用#include命令行將這些頭文件包含進(jìn)來。由于各頭文件是由不同的人設(shè)計的,有可能在不同的頭文件中用了相同的名字來命名所定義的類或函數(shù)。
例4 名字沖突
程序員甲在頭文件headerl.h中定義了類 Student和函數(shù)fun。
// 例4中的頭文件header1(頭文件1,沒其文件名為cc8-4-h1.h)
#include
#include
using namespace std;
class Student //聲明Student類
{public:
Student(int n,string nam,int a)
{num=n;name=nam;age=a;}
void get_data();
private:
int num;
string name;
int age; };
void Student::get_data() //成員函數(shù)定義
{ cout<<NUM<<" p="" ?<<name<double fun(double a,double b)//定義全局函數(shù)(即外部函數(shù))
{ return sqrt(a+b);}
在 main函數(shù)所在的文件中包含頭文件headerl.h:
#include
using namespace std;
#include "header1.h" //注意要用雙引號,因為文件一般是放在用用戶目錄中的
int main()
{Student stud1(101,"Wang",18); //定義類對象studl
stud1.get_data();
cout<<FUN(5,3)<<ENDL;< p="">
return 0; }
程序 能正常運(yùn)行,輸出為
101 Wang 18
2.82843
如果程序員乙寫了頭文件header2.h,在其中除了定義其他類以外,還定義了類Student和函數(shù)fun,但其內(nèi)容與頭文件headerl.h中的 Student和函數(shù)fun有所不同。
// 例4中的頭文件header2
#include
#include
using namespace std;
class Student //聲明Student類
{ public:
Student(int n,string nam,char s) //參數(shù)與headerl中的student不同
{ num=n;name=nam;sex=s;}
void get_data();
private:
int num;
string name;
char sex; };//此項與headerl不同
void Student::get_data() //成員函數(shù)定義
{ cout<<NUM<<" p="" ?<<name<
double fun(double a,double b) //定義全局函數(shù)
{ return sqrt(a-b);} //返回值與headerl中的fun函數(shù)不同
//頭文件2中可能還有其他內(nèi)容
假如主程序員在其程序中要用到headerl.h中的Student和函數(shù)fun,因而在程序中包含了頭文件headerl.h,同時要用到頭文件 header2.h中的一些內(nèi)容(但對header2.h中包含與headerl.h中的Student類和fun函數(shù)同名而內(nèi)容不同的類和函數(shù)并不知情,因為在一個頭文件中往往包含許多不同的信息,而使用者往往只關(guān)心自己所需要的部分,而不注意其他內(nèi)容),因而在程序中又包含了頭文件 header2.h。如果主文件(包含主函數(shù)的文件)如下:
#include
using namespace std;
#include "header1.h"http://包含頭文件l
#include "header2.h"http://包含頭文件2
int main()
{ Student stud1(101,"Wang",18);
stud1.get_data();
cout<<FUN(5,3)<<ENDL;< p="">
return 0; }
這時程序編譯就會出錯。因為在預(yù)編譯后,頭文件中的內(nèi)容取代了對應(yīng)的#include命令行,這樣就在同一個程序文件中出現(xiàn)了兩個Student類和兩個 fun函數(shù),顯然是重復(fù)定義,這就是名字沖突,即在同一個作用域中有兩個或多個同名的實(shí)體。
3、全局命名空間污染(global namespace pollution)。
在程序中還往往需要引用一些庫(包括C++編譯系統(tǒng)提供的庫、由軟件開發(fā)商提供的庫或者用戶自己開發(fā)的庫),為此需要包含有關(guān)的頭文件。如果在這些庫中包含有與程序的全局實(shí)體同名的實(shí)體,或者不同的庫中有相同的實(shí)體名,則在編譯時就會出現(xiàn)名字沖突。
為了避免這類問題的出現(xiàn),人們提出了許多方法,例如:將實(shí)體的名字寫得長—些(包含十幾個或幾十個字母和字符);把名字起得特殊一些,包括一些特殊的字符;由編譯系統(tǒng)提供的內(nèi)部全局標(biāo)識符都用下劃線作為前綴,如_complex(),以避免與用戶命名的實(shí)體同名;由軟件開發(fā)商提供的實(shí)體的名字用特定的字符作為前綴。但是這樣的效果并不理想,而且增加了閱讀程序的難度,可讀性降低了。
C 語言和早期的C++語言沒有提供有效的機(jī)制來解決這個問題,沒有使庫的提供者能夠建立自己的命名空間的工具。人們希望ANSI C++標(biāo)準(zhǔn)能夠解決這個問題,提供—種機(jī)制、一種工具,使由庫的設(shè)計者命名的全局標(biāo)識符能夠和程序的全局實(shí)體名以及其他庫的全局標(biāo)識符區(qū)別開來。
二、什么是命名空間(解 決方案)
命名空間:實(shí)際上就是一個由程序設(shè)計者命名的內(nèi)存區(qū)域,程序設(shè)計者可以根據(jù)需要指定一些有名字的空間域,把一些全局實(shí)體分別放在各個命名空間中,從而與其他全局實(shí)體分隔開來。
如: namespace ns1 //指定命名中間nsl
{ int a;
double b; }
namespace 是定義命名空間所必須寫的關(guān)鍵字,nsl 是用戶自己指定的命名空間的名字(可以用任意的合法標(biāo)識符,這里用ns1是因為ns是namespace的縮寫,含義請楚),在花括號內(nèi)是聲明塊,在其中聲明的實(shí)體稱為命名空間成員(namespace member)?,F(xiàn)在命名空間成員包括變量a和b,注意a和b仍然是全局變量,僅僅是把它們隱藏在指定的命名空間中而已。如果在程序中要使用變量a和b,必須加上命名空間名和作用域分辨符“::”,如nsl::a,nsl::b。這種用法稱為命名空間限定(qualified),這些名字(如nsl::a)稱為被限定名 (qualified name)。C++中命名空間的作用類似于操作系統(tǒng)中的目錄和文件的關(guān)系,由于文件很多,不便管理,而且容易重名,于是人們設(shè)立若干子目錄,把文件分別放到不同的子目錄中,不同子目錄中的文件可以同名。調(diào)用文件時應(yīng)指出文件路徑。
命名空間的作用:是建立一些互相分隔的作用域,把一些全局實(shí)體分隔開來。以免產(chǎn)生老點(diǎn)名叫李相國時,3個人都站起來應(yīng)答,這就是名字沖突,因為他們無法辨別老師想叫的是哪一個李相國,同名者無法互相區(qū)分。為了避免同名混淆,學(xué)校把3個同名的學(xué)生分在3個班。這樣,在小班點(diǎn)名叫李相國時,只會有一個人應(yīng)答。也就是說,在該班的范圍(即班作用域)內(nèi)名字是惟一的。如果在全校集合時校長點(diǎn)名,需要在全校范圍內(nèi)找這個學(xué)生,就需要考慮作用域問題。如果校長叫李相國,全校學(xué)生中又會有3人一齊喊“到”,因為在同一作用域中存在3個同名學(xué)生。為了在全校范圍內(nèi)區(qū)分這3名學(xué)生,校長必須在名字前加上班號,如高三甲班的李相國,或高三乙班的李相國,即加上班名限定。這樣就不致產(chǎn)生混淆。
可以根據(jù)需要設(shè)置許多個命名空間,每個命名空間名代表一個不同的命名空間域,不同的命名空間不能同名。這樣,可以把不同的庫中的實(shí)體放到不同的命名空間中,或者說,用不同的命名空間把不同的實(shí)體隱蔽起來。過去我們用的全局變量可以理解為全局命名空間,獨(dú)立于所有有名的命名空間之外,它是不需要用 namespace聲明的,實(shí)際上是由系統(tǒng)隱式聲明的,存在于每個程序之中。
在聲明一個命名空間時,花括號內(nèi)不僅可以包括變量,而且還可以包括以下類型:
·變量(可以帶有初始化);
·常量;
·數(shù)(可以是定義或聲明);
·結(jié)構(gòu)體;
·類;
·模板;
·命名空間(在一個命名空間中又定義一個命名空間,即嵌套的命名空間)。
例如
namespace nsl
{const int RATE=0.08; //常量
doublepay;//變量
doubletax()//函數(shù)
{return a*RATE;}
namespacens2//嵌套的命名空間
{int age;}
}
如果想輸出命名空間nsl中成員的數(shù)據(jù),可以采用下面的方法:
cout<<nsl::rate<<endl;< p="">
cout<<nsl::pay<<endl;< p="">
cout<<nsl::tax()<<endl;< p="">
cout<<nsl::ns2::age<<endl; p="" 需要指定外層的和內(nèi)層的命名中間名<="">
可以看到命名空間的聲明方法和使用方法與類差不多。但它們之間有一點(diǎn)差別:在聲明類時在右花括號的后面有一分號,而在定義命名空間時,花括號的后面沒有分號。
三、使用命名空間解決名字沖突(使用指南)
有了以上的基礎(chǔ)后,就可以利用命名空間來解決名字沖突問題?,F(xiàn)在,對例4程序進(jìn)行修改,使之能正確運(yùn)行。
例5 利用命名空間來解決例4程序名字沖突問題。
修改兩個頭文件,把在頭文件中聲明的類分別放在兩個不同的命名空間中。
//例8.5中的頭文件1,文件名為header1.h
using namespace std;
#include
#include
namespace ns1 //聲明命名空間ns1
{ class Student //在命名空間nsl內(nèi)聲明Student類
{ public:
Student(int n,string nam,int a)
{ num=n;name=nam;age=a;}
void get_data();
private:
int num;
string name;
int age; };
void Student::get_data() //定義成員函數(shù)
{ cout<<NUM<<" p="" ?<<name<
double fun(double a,double b) //在命名空間n引內(nèi)定義fun函數(shù)
{ return sqrt(a+b);}
}
//例 8.5中的頭文件2,文件名為header2.h
#include
#include
namespace ns2 //聲明命名空間ns2
{ class Student
{ public:
Student(int n,string nam,char s)
{ num=n;name=nam;sex=s;}
void get_data();
private:
int num;
string name;
char sex; };
void Student::get_data()
{ cout<<NUM<<" p="" ?<<name<
double fun(double a,double b)
{ return sqrt(a-b);}
}
//main file
#include
#include "header1.h" //包含頭文件l
#include "header2.h" //包含頭文件2
int main()
{ ns1::Student stud1(101,"Wang",18);//用命名空間nsl中聲明的Student類定義studt
stud1.get_data(); //不要寫成ns1::studl.get_data();
cout<<ns1::fun(5,3)<<endl; p="" 調(diào)用命名空間ns1中的fun函數(shù)<="">
ns2::Student stud2(102,"Li","f"); //用命名空間ns2中聲明的 Student類定義stud2
stud2.get_data();
cout<<ns2::fun(5,3)<<endl; p="" 調(diào)用命名空間nsl,中的fun函數(shù)<="">
return 0; }
解決本題的關(guān)鍵是建立了兩個命名空間nsl和ns2,將原來在兩個頭文件中聲叫的類分別放在命名空間nsl和ns2中。注意:在頭文件中,不要把#include命令放在命名空間中,在上一小節(jié)的敘述中可以知道,命名空間中的內(nèi)容不包括命令行,否則編譯會出錯。
分析例4程序出錯的原因是:在兩個頭文件中有相同的類名Student和相同的函數(shù)名fun,在把它們包含在主文件中時,就產(chǎn)生名字沖突,存在重復(fù)定義。編譯系統(tǒng)無法辨別用哪一個頭文件中的Student來定義對象studl?,F(xiàn)在兩個Student和fun分別放在不同的命名空間中,各自有其作用域,互不相干。由于作用域不相同,不會產(chǎn):生名字沖突。正如同在兩個不同的類中可以有同名的變量和函數(shù)而不會產(chǎn)生沖突一樣。
在定義對象時用ns1::Student(命名空間nsl中的Student)來定義studl,用ns2::Student(命名空間ns2中的 Student)來定義stud2。顯然,nsl::Student和ns2::Student是兩個不同的類,不會產(chǎn)生混淆。同樣,在調(diào)用fun函數(shù)時也需要用命名空間名ns]或ns2加以限定。ns1::fun()和ns2::fun()是兩個不同的函數(shù)。注意:對象studl是用 nsl::Student定義的,但對象studl并不在命名空間nsl中。studl的作用域為main函數(shù)范圍內(nèi)。在調(diào)用對象studl的成員函數(shù) get_data時,應(yīng)寫成studl.get_data(),而不應(yīng)寫成nsl::studl.get_data()。
程序 能順利通過編譯,并得到以下運(yùn)行結(jié)果:
101 Wang l9 (對象studl中的數(shù)據(jù))
2.82843 (/5+3的值)
102 Li f (對象studg中的數(shù)據(jù))
1.41421 (/5-2的值)
四、使用命名空間成員的方法
從上面的介紹可以知道,在引用命名空間成員時,要用命名空間名和作用域分辨符對命名空間成員進(jìn)行限定,以區(qū)別不同的命名空間中的同名標(biāo)識符。即:
命名空間名::命名空間成員名
這種方法是有效的,能保證所引用的實(shí)體有惟一的名字。但是如果命名空間名字比較長,尤其在有命名空間嵌套的情況下,為引用一個實(shí)體,需要寫很長的名字。在一個程序中可能要多次引用命名空間成員,就會感到很不方便。
1 、使用命名空間別名
可以為命名空間起一個別名(namespace alias),用來代替較長的命名空間名。如
namespace Television //聲明命名空間,名為Television
{ ... }
可以用一個較短而易記的別名代替它。如:
namespace TV=Television; //別名TV與原名Television等價
也可以說,別名TV指向原名Television,在原來出現(xiàn)Television的位置都可以無條件地用TV來代替。
2、使用using命名空間成員名
using后面的命名空間成員名必須是由命名空間限定的名字。例如:
using nsl::Student;
以上語句聲明:在本作用域(using語句所在的作用域)中會用到命名空間ns1中的成員Student,在本作用域中如果使用該命名空間成員時,不必再用命名空間限定。例如在用上面的using聲明后,在其后程序中出現(xiàn)的Student就是隱含地指nsl::Student。
using聲明的有效范圍是從using語句開始到using所在的作用域結(jié)束。如果在以上的using語句之后有以下語句:
Student studl(101,"Wang",18); //此處的Student相當(dāng)于ns1::Student
上面的語句相當(dāng)于
nsl::Student studl(101,"Wang",18);
又如
using nsl::fun; //聲明其后出現(xiàn)的fun是屬于命名空間nsl中的fun
cout<<FUN(5,3)<<ENDL; p="" 此處處的fun函數(shù)相當(dāng)于nsl::fun(5,3)<="">
顯然,這可以避免在每一次引用命名空間成員時都用命名空間限定,使得引用命名空間成員變得方便易用。
但是要注意:在同一作用域中用using聲明的不同命名空間的成員中不能有同名的成員。例如:
usmgnsl::Student; //聲明其后出現(xiàn)的Student是命名空間nsl中的Student
usmgns2::Student; //聲明其后出現(xiàn)的Student是命名空間ns2小的Student
Student stud1; //請問此處的Student是哪個命名中間中的Student?
產(chǎn)生了二義性,編譯出錯。
3、使用using namespace命名空間名
用上面介紹的using命名空間成員名,一次只能聲明一個命名空間成員,如果在一個命名空間中定義了10個實(shí)體,就需要使用10次using命名空間成員名。能否在程序中用一個語句就能一次聲明一個命名空間中的全部成員呢?
C++提供了using namespace語句來實(shí)現(xiàn)這一目的。using namespace語句的一般格式為
using namespace 命名空間名;
例如
using nanlespace nsl;
聲明了在本作用域中要用到命名空間nsl中的成員,在使用該命名空間的任何成員時都不必用命名空間限定。如果在作了上面的聲明后有以下語句:
Student studl(101,”Wang”,18); //Student隱含指命名中間nsl中的Student
cout<<FUN(5,3)<<ENDL; p="" 這里的fun函數(shù)是命名中間="" nsl中的fun函數(shù)<="">
在用usmgnamespace聲明的作用域中,命名空間nsl的成員就好像在全局域聲明的一樣。因此可以不必用命名空間限定。顯然這樣的處理對寫程序比較方便。但是如果同時用usingnamespace聲明多個命名空間時,往往容易出錯。例5中的main函數(shù)如果用下面程序段代替,就會出錯。
int main()
{ using namespace nsl;//聲明nsl中的成員在本作用域中可用
using namespace ns2;//聲明ns2中的成員在本作用域中可用
Student studl(101,”Wang",18);
studl.8ct_data();
cout<<FUN(5,3)<<ENDL;< p="">
Student stud2(102,"Li","r");
stud2.get_data();
coutt<<FUN(5,3)<<ENDL;< p="">
return O; }
因為在同一作用域中同時引入了兩個命名空間nsl和ns2,其中有同名的類和函數(shù)。在出現(xiàn)Student時,無法判定是哪個命名空間中的 Student,出現(xiàn)二義性,編譯出錯。因此只有在使用命名空間數(shù)量很少,以及確保這些命名空間中沒有同名成員時才用using namespace語句。
五、無名的命名空間
以上介紹的是有名字的命名空間,C++還允許使用沒有名字的命名空間,如在文件A中聲明了以下的無名命名空間:
namespace //命名空間沒有名字
{ void fun( ) //定 義命名空間成員
{ cout<<"OK."<<ENDL;}< p="">
}
由于命名空間沒有名字,在其他文件中顯然無法引用,它只在本文件的作用域內(nèi)有效。無名命名空間的成員fun函數(shù)的作用域為文件A(確切地說,是從聲明無名命名空間的位置開始到文件A結(jié)束)。在文件A中使用無名命名空間的成員,不必(也無法)用命名空間名限定。
如果 在文件A中有以下語句:
fun();
則執(zhí)行無名命名空間中的成員fun函數(shù),輸出”O(jiān)K.”。
在本程序中的其他文件中也無法使用該fun函數(shù),也就是把fun函數(shù)的作用域限制在本文件范圍中。可以聯(lián)想到:在C浯言中可以用static聲明一個函數(shù),其作用也是使該函數(shù)的作用域限于本文件。C++保留了用static聲明函數(shù)的用法,同時提供了用無名命名空間來實(shí)現(xiàn)這一功能。隨著越來越多的C++ 編譯系統(tǒng)實(shí)現(xiàn)了ANSI C++建議的命名空間的機(jī)制,相信使用無名命名空間成員的方法將會取代以前習(xí)慣用的對全局變量的靜態(tài)聲明。
六、標(biāo)準(zhǔn)命名空間std
為了解決C++標(biāo)準(zhǔn)庫中的標(biāo)識符與程序中的全局標(biāo)識符之間以及不同庫中的標(biāo)識符之間的同名沖突,應(yīng)該將不同庫的標(biāo)識符在不同的命名空間中定義(或聲明)。標(biāo)準(zhǔn)C++庫的所有的標(biāo)識符都是在一個名為std的命名空間中定義的,或者說標(biāo)準(zhǔn)頭文件(如iostream)中函數(shù)、類、對象和類模板是在命名空間 std中定義的。std是standard(標(biāo)準(zhǔn))的縮寫,表示這是存放標(biāo)準(zhǔn)庫的有關(guān)內(nèi)容的命名空間,含義請楚,不必死記。
這樣,在程序中用到C++標(biāo)準(zhǔn)庫時,需要使用std作為限定。如
std::cout<<"OK."<<ENDL; p="" 聲明cout是在命名空間std中定義的流對象<="">
在有的C++書中可以看到這樣的用法。但是在每個cout,cm以及其他在std中定義的標(biāo)識符前面都用命名空間std作為限定,顯然是很不方便的。在大多數(shù)的C++程序中常用usmgnamespace語句對命名空間std進(jìn)行聲明,這樣可以不必對每個命名空間成員一進(jìn)行處理,在文件的開頭加入以下 using namespace聲明:
using namespace std;
這樣,在std中定義和聲明的所有標(biāo)識符在本文件中都可以作為全局量來使用。但是應(yīng)當(dāng)絕對保證在程序中不出現(xiàn)與命名空間std的成員同名的標(biāo)識符,例如在程序中不能再定義一個名為cout的對象。由于在命名空間std中定義的實(shí)體實(shí)在太多,有時程序設(shè)計人員也弄不請哪些標(biāo)識符已在命名空間std中定義過,為減少出錯機(jī)會,有的專業(yè)人員喜歡用若干個"using命名空間成員”聲明來代替“using namespace命名空間”聲明,如
using Std::string;
using Std::cout;
using Std::cin;
等。為了減少在每一個程序中都要重復(fù)書寫以亡的using聲明,程序開發(fā)者往往把編寫應(yīng)用程序時經(jīng)常會用到的命名空間std成員的usmg聲明組成一個頭文件,然后在程序中包含此頭文件即可。
如果閱讀了多種介紹C++的書,可能會發(fā)現(xiàn)有的書的程序中有using namespace語句,有的則沒有。有的讀者會提出:究竟應(yīng)該有還是應(yīng)該沒有?應(yīng)當(dāng)說:用標(biāo)準(zhǔn)的C++編程,是應(yīng)該對命名空間std的成員進(jìn)行聲明或限定的(可以采取前面介紹過的任一種方法)。但是目前所用的C++庫大多是幾年前開發(fā)的,當(dāng)時并沒有命名空間,庫中的有關(guān)內(nèi)容也沒有放在std命名空間中,因而在程序中不必對std進(jìn)行聲明。
七、使用早期的函數(shù)庫
C語言程序中各種功能基本上都是由函數(shù)來實(shí)現(xiàn)的,在C語言的發(fā)展過程中建立了功能豐富的函數(shù)庫,C++從C語言繼承了這份寶貴的財富。在C++程序中可以使用C語言的函數(shù)庫。
如果要用函數(shù)庫中的函數(shù),就必須在程序文件中包含有關(guān)的頭文件,在不同的頭文件中,包含了不同的函數(shù)的聲明。
在C++中使用這些 頭文件有兩種方法。
1、用C語言的傳統(tǒng)方法
頭文件名包括后綴.h,如stdio.h,math.h等。由于C語言沒有命名空間,頭文件并不存放在命名空間中,因此在C++程序文件中如果用到帶后綴.h的頭文件時,不必用命名空間。只需在文件中包含所用的頭文件即可。如
#include
2、用C++的新方法
C++標(biāo)準(zhǔn)要求系統(tǒng)提供的頭文件不包括后綴.h,例如iostream、string。為了表示與C 語言的頭文件有聯(lián)系又有區(qū)別,C++所用的頭文件名是在C語言的相應(yīng)的頭文件名(但不包括后綴.h)之前加一字母c。例如,C語言中有關(guān)輸入與輸出的頭文件名為stdio.h在C++中相應(yīng)的頭文件名為cstdio。C語言中的頭文件math.h,在C++中相應(yīng)的頭文什名為cmath。C語言中的頭文件 string.h在C++中相應(yīng)的頭文件名為cstring。注意在C++中,頭文件cstnng和頭文件strmg不是同一個文件。前者提供C語言中對字符串處理的有關(guān)函數(shù)(如strcmp,ctrcpy)的聲明,后者提供C++中對字符串處理的新功能。
此外,由于這些函數(shù)都是在命名空間std中聲明的,因此在程序中要對命名空間std作聲明。如:
#include
#include
using namespace std;
目前所用的大多數(shù)C++編譯系統(tǒng)既保留了c的用法,又提供丁C++的新方法。下面兩種用法等價,可以任選。
C傳 統(tǒng)方法 C++新方法
#include #include
#include #include
#include #include
using namespace std;
可以使用傳統(tǒng)的c方法,但應(yīng)當(dāng)提倡使用C++的新方法。
標(biāo)簽:
相關(guān)推薦:
精彩放送:
- []回顧歷史事件:首臺通用電子計算機(jī)的發(fā)明者誕生 谷歌推出第一個涂鴉
- []全球熱頭條丨ABAP自定義截取字符串長度函數(shù) 截取字符串長度的函數(shù)
- []【快播報】為什么需要命名空間?使用命名空間解決名字沖突
- []pps是什么格式?洪恩MDF格式用什么軟件打開?
- []【獨(dú)家】html常用長度度量單位 度量長度的單位是什么?
- []
為什么要使用框架?使用軟件框架的優(yōu)點(diǎn)總結(jié) - []12月9日科拓生物漲停分析:幽門螺桿菌概念,食品,寵物經(jīng)濟(jì)概念熱股
- []招行信用卡旗下App全新上線 掌上生活9.0體驗究竟如何
- []26.4%!晶科能源182TOPCon電池轉(zhuǎn)換效率再創(chuàng)新高
- []王亞平女兒眼中的“航天女英雄”竟然是這樣的!
- []WotoKOL臥兔周年,深耕海外網(wǎng)紅營銷五載
- []今日觀點(diǎn)!世茂股份擬召開債券持有人會議,所有存續(xù)公司債12月9日開市起停牌
- []多家房企拋出股權(quán)融資方案 地產(chǎn)行業(yè)困境反轉(zhuǎn)?
- []消息!又一家大行看多!摩根士丹利:中國股票將跑贏全球
- []金溢科技:關(guān)于股東人數(shù)情況,詳見公司最近一期定期報告
- []格力地產(chǎn)調(diào)整重組方案:募集配套資金超8億元,明日復(fù)牌
- []【播資訊】“小步快跑”供地風(fēng)向標(biāo)顯現(xiàn) 武漢率先開啟第六批集中供地
- []世界熱點(diǎn)評!45個重點(diǎn)城市城鎮(zhèn)化率:這六個城市超90%
- []世界熱文:星輝娛樂:(1)近兩年,受多種因素影響,公司收入和凈利潤有所下滑
- []全球速訊:被六?。ㄊ校┘{入新冠肺炎診療方案的化痰止咳中藥是怎樣煉成的?
- []博雅生物:公司一直在積極推進(jìn)漿站拓展工作,申請新設(shè)漿站存在不確定性,如公司獲批新設(shè),將及時披露
- []原油交易提醒:美國料陷入技術(shù)性衰退,需求減弱拖累油價五連陰
- []當(dāng)前資訊!融創(chuàng)發(fā)布境外債務(wù)初步重組框架:擬將30至40億美元借款轉(zhuǎn)為普通股等
- []世界快看點(diǎn)丨內(nèi)蒙一機(jī):公司民品業(yè)務(wù)涉及鐵路車輛及相關(guān)零部件,訂單任務(wù)充足,重要合同簽訂情況均在臨時公告中有披露
- []世界頭條:二手房買家因賣家換掉家具拒付尾款遭起訴,法院:出賣人構(gòu)成違約
- []2022財年虧損18.16億,靠港府“續(xù)命”的香港海洋公園能走多遠(yuǎn)?
- []每日快看:大葉股份:公司綜合考慮質(zhì)量、性能、交期、價格等多個因素,汽油割草機(jī)零部件為全球化采購
- []晉億實(shí)業(yè):公司主要從事各類緊固件的研究和開發(fā),生產(chǎn)銷售各類緊固件、鐵道扣件等產(chǎn)品,產(chǎn)品遠(yuǎn)銷國內(nèi)外
- []融創(chuàng)公布境外債重組重大進(jìn)展 加速回到健康發(fā)展軌道
- []新力被債權(quán)人放棄了
- []房企融資“三箭齊發(fā)”,置業(yè)信心能否回暖?
- []【環(huán)球速看料】國際油價 7日 顯著下跌
- []獨(dú)立儲能電站商業(yè)投資價值的識別與分析
- []甘肅多措并舉保障冬季電力供應(yīng)
- []天天快報!電化學(xué)儲能是什么意思?電化學(xué)儲能主要包括哪些?
- []焦點(diǎn)!成立1年,業(yè)務(wù)覆蓋30+國家和地區(qū)!這家儲能公司怎么這么猛?
- []今日看點(diǎn):車險年底買是否優(yōu)惠些 年底買車保險會不會優(yōu)惠些
- []【全球熱聞】美股異動 | 中概教育股普漲 新東方(EDU.US)漲超9%
- []【天天新要聞】定向增發(fā)+公司債 大名城拋出約50億元再融資方案
- []保險報案有效期是多久 一般保險報案的有效期限是多長時間
- []保險不續(xù)費(fèi)自動退保嗎 保險要是不續(xù)費(fèi)會自行退保嗎
- []參保人就是被保險人嗎 被保險人是不是參保人
- []公積金一定要留余額嗎 公積金必須留余額嗎
- []歲寶百貨深圳宏發(fā)大世界購物廣場門店提前終止租賃協(xié)議
- []天天滾動:2023年Q1全球計劃運(yùn)力預(yù)計達(dá)12億,法國境內(nèi)短途航班取消將為對手創(chuàng)造機(jī)會
- []頭條:川潤股份:12月7日公司高管李輝減持公司股份合計5.37萬股
- []零售云平臺多點(diǎn)數(shù)智赴港IPO 騰訊IDG是股東
- []【環(huán)球熱聞】新湖中寶擬引入衢州國資 由控股股東出讓不超過10%股權(quán)
- []科藍(lán)軟件:12月7日公司高管王安京減持公司股份合計14.84萬股
- []全球快訊:龍佰集團(tuán):12月7日公司高管張海濤增持公司股份合計1600股
- []世界球精選!歷時八個月 南京正式實(shí)施商品房預(yù)售資金監(jiān)管新政
- []當(dāng)前信息:北京銀行與重點(diǎn)房地產(chǎn)企業(yè)簽約,提供意向性融資總額2500億元
- []環(huán)球焦點(diǎn)!格力地產(chǎn)重啟收購珠海免稅 構(gòu)建三大業(yè)務(wù)板塊
- []美國房地產(chǎn)大起大落后迎來投資機(jī)會
- []每日視點(diǎn)!新柴股份:12月7日公司高管周高峰減持公司股份合計2000股
- []北京銀行:為萬科、中海、招商等重點(diǎn)房企提供意向性融資總額2500億元
- []快資訊丨佳力奇:加大自主創(chuàng)新力度 持續(xù)鞏固技術(shù)堡壘
- []當(dāng)前播報:群興玩具:截止目前,公司未存在籌劃重大資產(chǎn)重組等事項
- []現(xiàn)貨黃金持穩(wěn),市場權(quán)衡兩大前景,警惕通脹“掛自動擋”
- []環(huán)球今日報丨中指院: A股ESG報告披露率較低
- []人福醫(yī)藥:12月7日徐華斌減持公司股份合計13萬股
- []每日快訊!越秀地產(chǎn)前11月合同銷售1029.4億元 完成年度銷售目標(biāo)83%
- []交建股份:11月28日至12月1日公司高管胡先寬、儲根法、曹振明、陳明洋、施秀瑩減持公司股份合計72.02萬股
- []物業(yè)流拍、招租進(jìn)行中,天橋百貨覓新生
- []當(dāng)前關(guān)注:合生創(chuàng)展前11月總合約銷售額281.13億元 同比下降27.73%
- []全球觀熱點(diǎn):中指院:二十城物業(yè)服務(wù)收費(fèi)穩(wěn)中略升
- []新化股份:12月6日至12月7日公司高管方軍偉減持公司股份合計8000股
- []寶龍地產(chǎn)前11月合約銷售總額約379.3億元
- []【天天新要聞】萬通發(fā)展擬投資5億元設(shè)立通信業(yè)務(wù)全資子公司
- []全球速讀:沃森生物:公司近年來持續(xù)從銷售體系建設(shè)、消費(fèi)者教育、終端服務(wù)和渠道布局多維度打造產(chǎn)品品牌和市場影響力
- []大名城擬定增不超過30億元 主要投向上海5個項目
- []天天熱文:黃山膠囊:我公司根據(jù)相關(guān)法律、法規(guī)及規(guī)范性文件的規(guī)定標(biāo)準(zhǔn)進(jìn)行信息披露
- []黃山膠囊:我公司與熊去氧膽酸膠囊暫無合作
- []【新要聞】中南建設(shè)三只債券獲持有人會議通過 豁免美元債交叉違約
- []每日快報!大名城擬發(fā)行本金不超過20億元的公司債券
- []全球即時看!落子布局電池租賃!寧德時代或許將用換電服務(wù)深度綁定車企
- []越秀地產(chǎn):前11月合同銷售額約為人民幣1029.4億元
- []環(huán)球快看:中華企業(yè)擬非公開發(fā)行股票不超過總股本30% 用于“保交樓“項目
- []德藝文創(chuàng):截至2022年11月30日(目前最新數(shù)據(jù))的股東人數(shù)為12,383
- []全球熱門:中駿集團(tuán)提前匯出12.87億以兌付購房尾款A(yù)BS本息 年內(nèi)公開債務(wù)“零違約”
- []環(huán)球報道:杭州規(guī)定保租房租金應(yīng)低于同類房源市場價格 2023年1月5日起施行
- []全球動態(tài):奧馬電器:公司產(chǎn)品為冰箱冷柜,冰箱冷柜為居民生活必備的耐用消費(fèi)品
- []全球速看:合肥搭建線上服務(wù)平臺 開啟“二手房互換”新模式
- []每日資訊:金石亞藥:目前公司產(chǎn)能及備貨充足,能夠滿足市場需求
- []實(shí)至名歸,箭牌家居榮獲行業(yè)唯一“2022國際CMF設(shè)計獎”金獎!
- []快資訊:雖遲但到 | 2022 環(huán)球旅訊峰會,12月底上海見
- []天天速遞!圖解貴金屬及外匯:多空成本+最單邊押注(2022/12/08周四)
- []熱資訊!中駿安全度過行業(yè)低谷期,年內(nèi)償還境內(nèi)外公開債務(wù)超70億元
- []世界熱門:豪森股份:公司2022年度向特定對象發(fā)行A股股票的定價基準(zhǔn)日為發(fā)行期首日
- []財面兒丨中駿集團(tuán)控股1-11月實(shí)現(xiàn)累計合同銷售金額約544.42億元
- []天天新動態(tài):西安飲食:該公司并未實(shí)際開展業(yè)務(wù)
- []青島中程:公司印尼工業(yè)園現(xiàn)場員工,克服多方困難,全力推進(jìn)RKEF鎳電項目剩余工程的建設(shè),爭取早日交付
- []天天日報丨財面兒|德信中國前11月累計合約銷售金額336億元
- []全球看熱訊:物業(yè)丨卓越商企服務(wù):全資附屬公司收到仲裁通知書
- []【新要聞】比特幣概念股票有哪些?2021年比特幣概念股一覽?
- []快消息!核電股票有哪些?2018核電概念股龍頭有哪些?
- []當(dāng)前快訊:股市熔斷機(jī)制是什么意思?股市熔斷機(jī)制有什么意義?
- []今日要聞!物業(yè)丨華潤萬象生活:與華潤置地訂立商業(yè)運(yùn)營服務(wù)框架協(xié)議之補(bǔ)充協(xié)議
- []全球熱議:鉬板概念股是哪些?鉬板股票一覽?
- []資訊推薦:合力泰:公司目前未涉及該業(yè)務(wù)
- 遺傳算法實(shí)例有哪些?函數(shù)的最大值怎么解?
- 數(shù)學(xué)筆記有哪些?數(shù)學(xué)無窮級數(shù)和收斂判定
- 環(huán)球速看:怎么使用java修改端口?springboot打包項目
- 資訊:mysql報錯的解決方法 內(nèi)部異常堆棧跟蹤的結(jié)尾
- 域名訪問升級怎么操作?追蹤域名指向的IP地址
- 全球看熱訊:12月9日天瑞儀器漲停分析:抗原自測,新冠檢測,體外診斷概念熱股
- 二十年老品牌利德治療儀讓你在家安心做理療
- 頭條焦點(diǎn):FBI的WARNING是什么?簡單的靜態(tài)代碼檢測規(guī)則
- 心理測試小游戲有哪些?真的準(zhǔn)嗎?
- 快看點(diǎn)丨12月9日沈陽化工漲停分析:PVC,燒堿,石油化工概念熱股
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨(dú)家財務(wù)顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內(nèi)研發(fā)費(fèi)用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發(fā)布2021年Q2財報 期內(nèi)凈利潤達(dá)1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實(shí)現(xiàn)營收同比增長17.27億元
- 汽車之家發(fā)布2021年第二季度業(yè)績 期內(nèi)新能源汽車品牌收入增長238%
- 中信銀行上半年實(shí)現(xiàn)凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創(chuàng)新高 全天成交額達(dá)1.29億元
- 上半年生物藥大增45% 關(guān)鍵財務(wù)指標(biāo)好轉(zhuǎn)營收賬款持續(xù)下降
- 全球熱推薦:甲醇概念上市公司有哪些?甲醇概念股一覽?
- 全球短訊!2020年股市休市放假怎么安排的?A股全年休市一覽?
- 2020新能源電池概念股票有哪些?2020新能源電池概念股票一覽?
- 全球?qū)崟r:哪些是智能家居概念股?智能家居概念股名單一覽?
- 全球消息!抄底是什么意思?抄底的四大形態(tài)是怎樣的?
- 【熱聞】磷化工股票有哪些?相關(guān)磷化工概念股票有哪些?
- 【世界新要聞】面板概念龍頭股有哪些?2021年面板概念股有哪些?
- 碳中和是什么概念?碳中和概念股有哪些?
- 每日消息!太陽能電池背板上市公司有哪些?太陽能電池背板概念股一覽
- 全球滾動:虛擬現(xiàn)實(shí)板塊股票有哪些?虛擬現(xiàn)實(shí)概念股票一覽?
- 全球動態(tài):橡膠股票龍頭股有哪些?橡膠股票有哪些?
- 世界快看:俄油上限剛出臺沖擊就已顯現(xiàn)?俄羅斯原油出口出現(xiàn)急劇減少
- 電纜上市公司有哪些?相關(guān)上市公司龍頭有哪些?
- 世界快看:核電板塊龍頭股票有哪些?核電概念股票有哪些?
- 世界微資訊!食用油板塊龍頭股票有哪些?食用油板塊龍頭股票有哪些?
- 環(huán)球視訊!2021年騰訊概念股票有哪些?騰訊概念股一覽?
- 森馬服飾股票屬于什么板塊?森馬服飾股票屬于哪些概念股?
- MINE's TALK對話祝羽捷,「一個自己的房間」 傳遞自洽生活哲學(xué)
- 世界今頭條!國際油價多頭須盡快離場,該指標(biāo)暗示需求擔(dān)憂仍唱主角
- 中交路橋建設(shè)20億元綠色公司債券已提交注冊
- 世界熱推薦:中建信息10億元應(yīng)收賬款資產(chǎn)支持ABS已獲受理
- 產(chǎn)業(yè)物流線上季快訊 | 王少華:險資在物流上的投資機(jī)會將增多
- 綠城房地產(chǎn)擬發(fā)行90億元中票 項目狀態(tài)為“預(yù)評中”
- 上海地鐵全線受理云閃付乘車碼“一碼通行”功能
- 焦點(diǎn)快播:粵萬年青:公司產(chǎn)品消炎利膽片功能主治為“清熱,祛濕,利膽
- 精彩看點(diǎn):味知香:公司新產(chǎn)能預(yù)計前期先進(jìn)行部分投產(chǎn),后期根據(jù)生產(chǎn)運(yùn)營情況,逐步釋放產(chǎn)能
- 香港發(fā)展局:一般項目由“生地”變成可建屋“熟地”的時間減至4年
- 環(huán)球百事通!錫裝股份:公司沒有上述高送轉(zhuǎn)的計劃。感謝您的關(guān)心支持!
- 焦點(diǎn)短訊!金價有望繼續(xù)走強(qiáng)!世界黃金協(xié)會稱全球央行繼續(xù)購金,三季度購買量猛增至400噸
- 加碼歐洲儲能市場 優(yōu)能新能源發(fā)布新一代儲能逆變器
- 世界熱點(diǎn)!美原油交易策略:經(jīng)濟(jì)衰退擔(dān)憂籠罩市場,油價跌勢難改
- 頭條焦點(diǎn):國際金價持穩(wěn),市場擔(dān)心美聯(lián)儲繼續(xù)維持強(qiáng)硬鷹派立場
- 當(dāng)前速看:現(xiàn)貨黃金交易策略:初請數(shù)據(jù)來襲,關(guān)注200日均線阻力
- 攜程發(fā)布“2023旅游振興A計劃”,三“重”戰(zhàn)略促萬億消費(fèi)
- 天天即時看!冬季冰雪游升溫,同程旅行冰雪搜索熱度增長150%
- 全球要聞:國際金價或回踩1772美元
- 環(huán)球即時:ThinkBook16p對比聯(lián)想小新 Pro16 2021款哪個值得更好?詳細(xì)評測
- 焦點(diǎn)熱文:北京樓市,變了
- 場景化營銷精準(zhǔn)發(fā)力 錢小樂持續(xù)優(yōu)化金融服務(wù)質(zhì)效
- 環(huán)球熱頭條丨Excel函數(shù)之VLOOKUP()怎么使用?一文搞懂Excel函數(shù)之VLOOKUP()使用
- “新十條”發(fā)布后,這個省份開始搶游客了
- 全球最新:魏小安:旅游業(yè)大局三個月可定,六個月可起
- 環(huán)球百事通!FFT是什么意思?FFT的詳解
- 天天微頭條丨disable怎么運(yùn)用?disable簡單易理解用法
- 環(huán)球快報:格式化時間是什么?抽象類DateFormat是什么?
- 焦點(diǎn)!中駿集團(tuán):前11月合同銷售額約544.42億元
- 全球即時:order by是什么意思?order by的詳解
- 天天熱消息:java.lang.NullPointerException解決方案是什么?
- 焦點(diǎn)消息!誅仙3新手卡怎么領(lǐng)?。空D仙3新手卡領(lǐng)取中心
- 弘陽地產(chǎn)前11月合約銷售額同比減少56.98% 單月同比跌64.3%
- 天天要聞:主板測試卡代碼a2是什么?主板測試卡代碼 常見代碼總結(jié)
- UML建模怎么用?UML建模之用例圖
- 環(huán)球百事通!國產(chǎn)搞笑電視劇排行榜你看過幾個?愛情公寓只能排倒數(shù)第三
- 【世界快播報】工廠模式是什么?工廠模式的詳解
- 世界通訊!黃淮學(xué)院最低錄取分?jǐn)?shù)線是多少?2022文理科最低分及位次
- 最美夕陽紅 攜手度余生——富德生命人壽十堰中支用鏡頭為老人定格相濡以沫的愛情
- 速訊:使用Icon圖標(biāo)的幾種方式是啥?Icon圖標(biāo)怎么使用?
- 速看:歌名最長的網(wǎng)絡(luò)歌曲是什么?歌名最長的中文歌
- fm2015是什么?fm2010戰(zhàn)術(shù)
- 【獨(dú)家】.NET Core是什么?NET Core有哪些用處?
- Trans系列是啥?基于翻譯模型(Trans系列)的知識表示學(xué)習(xí)
- 尼康d800與d810哪個好?尼康d800與d810有哪些區(qū)別?
- 快看點(diǎn)丨Internal問題解決流程 Internal server error 500 問題解決思路
- 【環(huán)球播資訊】12月8日天元股份漲停分析:可降解塑料,包裝印刷概念熱股
- 每日快播:12月8日焦點(diǎn)科技漲停分析:跨境電商,職業(yè)教育,教育概念熱股
- 12月8日千紅制藥漲停分析:肝素,化學(xué)原料藥,抗原自測概念熱股
- 微速訊:轉(zhuǎn)動慣量是什么意思?轉(zhuǎn)動慣量的含義
- 當(dāng)前焦點(diǎn)!歉疚的意思是什么?歉疚一詞詳情介紹
- 西米是什么米?西米露和西米是一樣的嗎?
- 興民智通:公司目前不觸及 st 相關(guān)條款
- 世界頂級昂貴音響有哪些?世界頂級昂貴音響介紹
- 世界今日報丨如何正確使用系統(tǒng)清理bat程序?清理bat程序的方法技巧
- 天天微動態(tài)丨11月百城二手住宅市場均價穩(wěn)中趨降
- 【世界熱聞】12月8日國光連鎖漲停分析:新零售概念熱股
- 頭條焦點(diǎn):文章目錄是什么?選擇排序怎么設(shè)置?
- 世界微資訊!網(wǎng)絡(luò)的利與弊是什么?網(wǎng)絡(luò)的利弊分析
- 天天快資訊丨吸血鬼狂刀技能搭配詳情 吸血鬼狂刀攻略)
- 世界動態(tài):磁條讀寫器多少錢?磁條讀寫器使用方法介紹
- Modbus通信協(xié)議是什么?Modbus通信協(xié)議詳解
- JSONObject是什么意思?JSONObject的詳情介紹
- 世界關(guān)注:iPad Air(iPad5)什么時候上市?iPad Air(iPad5)的上市時間
- 安徽大專學(xué)校推薦!安徽大專院校排名前十詳細(xì)介紹含分?jǐn)?shù)線
- 每日熱聞!BOW是什么意思?為什么要用BOW模型描述圖像?
- 環(huán)球快資訊:鉛球世界紀(jì)錄2019 女子男子鉛球世界紀(jì)錄分別是多少?
- 熱門看點(diǎn):分析賓得645d怎么樣?賓得公司詳情介紹
- 觀察:梯度(gradient)是什么?梯度的概念是建立在哪方面?
- 焦點(diǎn)播報:程子土包子來的時候歌廳的dj叫什么名字?海燕KTV
- 世界視訊!信號的基本概念是什么?信號的分類有哪些?
- 環(huán)球?qū)崟r:電腦電源額定功率要多少才合適?電腦電源的額定功率
- 全球快消息!4399生死狙擊萬人號賬號2021 4399生死狙擊好號和密碼免費(fèi)永久2021
- 焦點(diǎn)訊息:OneNote是什么?OneNote的功能有哪些?
- 世界今頭條!多普達(dá)手機(jī)都有哪些型號?多普達(dá)最新手機(jī)大全詳情
- 揮著翅膀的女孩英文版叫什么?揮著翅膀的女孩英語版歌詞翻譯
- lol怎么在游戲里回復(fù)好友?lol游戲回復(fù)技巧
- 今日精選:碧海青天的意思是什么?碧海青天一詞出自哪里?
- 世界信息:圖片或手寫簽名轉(zhuǎn)電子簽名怎么轉(zhuǎn)?手寫簽名轉(zhuǎn)電子簽名教程
- 世界要聞:44歲賈靜雯出席活動耳朵被燙傷 修杰楷很是心疼
- 當(dāng)前視點(diǎn)!手機(jī)QQ接收電腦端好友發(fā)送的文件存儲在什么地方?手機(jī)文件儲存路徑
- 天天速讀:語義分割:基于openCV和深度學(xué)習(xí)(二)
