分配器 (C++)
在 C++ 編程中，分配器（英語：allocator）是 C++ 標準庫的重要組成部分。C++ 的庫中定義了多種被統稱為「容器」的資料結構（如連結串列、集合等），這些容器的共同特徵之一，就是其大小可以在程式的執行時改變；為了實現這一點，進行動態記憶體分配就顯得尤為必要，在此分配器就用於處理容器對記憶體的分配與釋放請求。換句話說，分配器用於封裝標準模板庫（STL）容器在記憶體管理上的低層細節。預設情況下，C++ 標準庫使用其內建的通用分配器，但根據具體需要，程式設計師也可自行客製化分配器以替代之。
分配器最早由亞歷山大・斯特潘諾夫作為 C++ 標準模板庫（Standard Template Library，簡稱 STL）的一部分發明，其初衷是創造一種能「使庫更加靈活，並能獨立於底層資料模型的方法」，並允許程式設計師在庫中利用自訂的指標和參照類型；但在將標準模板庫納入 C++ 標準時，C++ 標準委員會意識到對資料模型的完全抽象化處理會帶來不可接受的效能損耗，為作折中，標準中對分配器的限制變得更加嚴格，而有鑑於此，與斯特潘諾夫原先的設想相比，現有標準所描述的分配器可客製化程度已大大受限。
雖然分配器的客製化有所限制，但在許多情況下，仍需要用到自訂的分配器，而這一般是為封裝對不同類型記憶體空間（如共享記憶體與已回收記憶體）的存取方式，或在使用記憶體池進行記憶體分配時提高效能而為。除此以外，從記憶體占用和執行時間的角度看，在頻繁進行少量記憶體分配的程式中，若引入為之專門客製化的分配器，也會獲益良多。