2013-05-21 19 views
9
  1. 我知道我可以使用*s.begin(),但同樣的論點可以用於vector,其中有front/back
  2. 我經常使用set /地圖的有序屬性來獲取「最小的」元/鍵 - OFC事實這這樣做是不是有它的原因,只是一個例子:)

這裏我說的是設計爲什麼front/back會很糟糕的設計,所以請跳過顯而易見的原因,像原因委員會忘了關於它...是否有設計原因的std ::一套不必須正面和背面成員函數?

回答

20

我認爲「前」和「後」字是保留爲序列容器(即,那些元素順序由插入順序決定的元素),以及這些詞意味着在該順序中提供一個物理位置。

由於set不是序列容器(而是關聯容器),這是不合適的。尤其要注意的是,「前面」的含義可以通過隨後插入不相關的元素來改變。

+4

第二段並沒有真正意義; 'vector'的'back'也可以通過'push_back'改變。但第一段爲+1。 –

+3

@larsmans:是的,如果你改變回來,「後退」可以改變。但你會明確地改變後面。在一組中,如果你明白我的意思,這將是一個*無關的變化。當您考慮列表時,此解釋效果最佳。 –

+2

好吧,夠公平的。 –

相關問題