對「STL」(Standard Template Library)這個名詞有點疑惑,
希望大家解惑。
在學習c++的時候,常會聽到說STL是c++好用的工具庫,
例如vector, stack, queue, set, map都屬STL的容器,
或是像標頭檔<algorithm>也算是一種STL。
但是其它程式語言中好像沒聽到這個名詞。
想問說其它程式語言的內建(或擴充)函式庫可以算是STL的一種嗎?
還是說STL是c++特有的函式庫?
例如c有<stdio.h>算是STL嗎?
java有容器ArrayList算是STL嗎?
python有擴充函式庫numpy算是STL嗎?
C++ 還有 Boost C++ Libraries
C 有 Standard Library , stdio.h 是其中一部分
Java 有自己的
NumPy 是 Python的延伸Library , 可以說是 SciPy 的重要組成. https://scipy.org/
這些跟 STL 算是各自獨立.
另外 c 的 stdio.h 要是算到STL 裡面,那就是大大的誤解了. C 的誕生比 C++早.
STL 又是在C++ 之後.
STL 是很重要,但用C++ ,也是可以不用STL的,他不是 standard library的地位.別被那個 STL (Standard Template Library)的Standard 誤解了, C++ 另有 C++ Standard Library.
http://libcxx.llvm.org/
你是看到什麼奇怪的STL介紹,說的好像是一切的基礎似的,這有點誇張了.有些文件寫的太過了.
那些東西沒什麼好再看,終究要回歸正統的道路上來.吸引眼球的網路文章,不如正統的看官方文件.
C++之於STL
=燒餅之於油條
=前端之於jquery
所以你會把油條叫做STL嗎?
我會將他稱為「事實標準」,就是固定搭配的意思