(當我說STL,我談論的是圍繞容器,迭代算法和仿函數模板庫)。
,這個問題就認爲一個std::string
大多如同普通的容器後,腦,用通過他們的迭代(例如transform
,sort
,find
等)begin
和end
功能(包括迭代器),一個size
功能和使用所有那些對於在容器上的工作正常STL算法的可能性/範圍內。std :: string是STL的一部分嗎?
但是,它同時不是容器本身,因爲它不適合存儲任意數據的容器圖片。此外,它主要通過成員函數對所包含的數據進行操作,如substr
,find_first_of
等,而真正的容器不會這樣做,並讓算法處理它。
此外,cplusplus reference site和C++標準沒有列出std::string
連同真實容器,但在一個不同的類別。
但是,在SGI's STL site,basic_string
(因此string
typedef)與其他容器和basic_string
reference site指出它屬於「容器」類別。
現在我的問題是,string
實際上是STL的一部分還是它本身是一個獨特的庫?
如果它現在屬於STL,它是否與Stepanov開發的原始STL有所不同?
誰在乎STL在這一點上,除了歷史的好奇? – ildjarn 2011-05-12 02:02:32
@ildjarn:嗯,我喜歡積累知識。 :P另外,看到那個''歷史''標籤? :)我只是喜歡這樣的東西,所以我要求它。 – Xeo 2011-05-12 02:03:53
啊,公平的,我實際上沒有看到'history'標籤: - ] – ildjarn 2011-05-12 02:04:19