2012-02-26 79 views
5

是否有可能在單個語句中包含C++標準庫,或者是否必須按頭逐頭執行?包含C++標準庫

+2

沒有'#include '。 – 2012-02-26 09:02:48

+0

最好將它們包含在需要的基礎上,這樣編譯和鏈接將花費更少的時間。 – Ajay 2012-02-26 09:24:13

回答

0

不,沒有捷徑包含所有標準標題。

0

也許你可以在你自己的all.h,然後#include<all.h>,包括所有的標題,但不建議。

4

不,沒有捷徑包含所有標準標題。通常你必須包括你需要單獨的每一個。

可以創建一個包含所有標準庫標題的頭文件,例如all.h。但是,您應該考慮這樣做是否明智之舉,因爲它會顯着延長編譯時間。

此外,請確保您在做出此類決定之前瞭解C++編譯模型。如果您還不知道,請查明翻譯單元,目標文件,鏈接程序的功能,包含庫標題和鏈接庫之間的區別。

+0

好的,謝謝,那正是我需要的。我不打算每天都這樣做,前幾天我參加了一個編程比賽,我和我的合作伙伴都知道該怎麼做,但不知道圖書館能夠獲得我們需要的東西,沒有他們的參考。 – xspyderz 2012-02-26 21:05:14

+0

我想在這種情況下最好的做法是嘗試訪問庫引用 - 而不僅僅是爲了找到頭名稱。如果不允許的話,競爭規則非常嚴格。如果你絕對不能引用,你可以嘗試找到標準庫頭文件所在的目錄並列出目錄 - 在大多數情況下它應該是非常明顯的,因爲其中很多都是在主類之後調用的(例如容器)。 – AndrzejJ 2012-02-27 10:08:47

+0

對於大多數剩餘的標題,您應該有一個很好的主意,例如''如果你經常使用它,如果你沒有使用它,那麼無論如何你都可能無法應付。作爲最後的手段,您當然可以查看和/或使用帶有標準庫標頭的目錄上的grep或任何文本搜索工具。 – AndrzejJ 2012-02-27 10:12:31

2

在Visual Studio中,您可以將所有這些頭文件放入預編譯頭文件中。由於該文件包含在您的所有文件中,因此所有stl聽衆都可以在任何地方使用。如果預編譯頭文件中包含的所有內容都來自外部庫,則預編譯應加快編譯時間。