C++ 速查手冊

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> 除錯用的巨集。

舉一例如下

#include <iostream>
#include <iomanip>
#include <ctime>

using namespace std;

int main() {
    time_t t = time(nullptr);
    cout << "UTC:   " << put_time(gmtime(&t)"%c %Z") << endl;
    cout << "Local: " << put_time(localtime(&t)"%c %Z") << endl;
}

/* 《程式語言教學誌》的範例程式
   https://kaiching.org/
   檔名:u1501.cpp
   功能:示範 C++ 的標準程式庫
   作者:張凱慶*/

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

time_t t = time(nullptr);

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

cout << "UTC:   " << put_time(gmtime(&t)"%c %Z") << endl;

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

cout << "Local: " << put_time(localtime(&t)"%c %Z") << endl;

編譯執行,結果如下

$ g++ u1501.cpp
$ ./a.out
UTC:   Sat Dec 15 01:26:39 2018 UTC
Local: Sat Dec 15 09:26:39 2018 CST
$

上一頁 單元 15 - 標準程式庫
回 C++ 速查手冊首頁
下一頁 15.2 - 字串程式庫
回 C++ 教材
回程式語言教材首頁