C++ 速查手冊 V1.00 - 單元 15.1 - 工具程式庫




工具程式庫 (utilities library) 可分為一般性的應用


名稱 功能
<cstdlib> 程序控制、記憶體管理、數字與字串轉換、寬字串管理、數學及搜尋排序演算法。
<csignal> 訊號相關控制。
<csetjmp> 程式跳躍控制。
<cstdarg> 可變參數控制。
<typeinfo> 執行期間資訊工具。
<typeindex>C++11 std::type_index
<type_traits>C++11 編譯期間資訊工具。
<bitset> std::bitset
<functional> 函數物件控制。
<utility> 一般工具。
<ctime> 時間、日期相關工具。
<chrono>C++11 時間相關工具。
<cstddef> 型態別名。
<initializer_list>C++11 std::initializer_list
<tuple>C++11 std::tuple

動態記憶體管理


名稱 功能
<new> 低階記憶體管理工具。
<memory> 高階記憶體管理工具。
<scoped_allocator>C++11 巢狀記憶體管理類別。

數字界限


名稱 功能
<climits> 整數型態界限。
<cfloat> 浮點數型態界限。
<cstdint>C++11 固定尺寸的型態界限。
<cinttypes>C++11 數字型態轉換的巨集。
<limits> 基本內建型態的界限。

以及錯誤處理


名稱 功能
<exception> 例外處理工具。
<stdexcept> 標準例外物件。
<cassert> 除錯用的巨集。
<system_error>C++11 std::error_code
<cerrno> 除錯用的巨集。

舉一例如下


001 #include <iostream>
002 #include <iomanip>
003 #include <ctime>
004
005 using namespace std;
006
007 int main() {
008    time_t t = time(nullptr);
009    cout << "UTC:   "
010      << put_time(gmtime(&t)"%c %Z")
011      << endl;
012    cout << "Local: "
013      << put_time(localtime(&t)"%c %Z")
014      << endl;
015 }
016
017 /* Kaiching Chang 
018    u1501.cpp
019    2014-02 */

此例主要示範 ctime ,像是 time_tctime 中定義計算時間的型態, time() 則是 ctime 中回傳現在時間的函數


008 time_t t = time(nullptr);

下面的 put_time() 來自 iomanip ,這是格式化輸出時間的函數 (function) ,而 gmtime()ctime 的函數,會將現在時間轉換成 UTC 時區的時間


010 << put_time(gmtime(&t)"%c %Z")

localtime() 也是 ctime 的函數,這會將現在時間轉換成使用者時區的時間


013 << put_time(localtime(&t)"%c %Z")

編譯執行,結果如下


$ g++ u1501.cpp
$ ./a.out
UTC: Sun Mar 30 03:37:04 2014 UTC
Local: Sun Mar 30 11:37:04 2014 CST
$

continue ...

沒有留言: