根據cppreference.com:如何編寫STL兼容的容器,但其大小未知?
任何符合STL-容器必須提供一個成員函數
size()
。
現在我必須寫一個兼容STL-容器MyContainer
,MyContainer::iterator
是一種類型的std::input_iterator
,即,MyContainer
只能穿過一個通。例如,我使用MyContainer
來存儲SQL查詢的結果,並使用它的iterator
逐一記錄這些記錄。
我遇到了這樣一個問題:MyContainer
可以提供begin()
和end()
來遍歷它的值,但不能預先確定它的值的總大小。
在這種情況下我應該怎麼做?
這不是一個容器,在這種情況下,你應該考慮迭代器而不是容器。這應該不是真正的問題,因爲大多數標準函數使用迭代器而不是容器。 – Holt
您需要'流'而不是容器。你可以從基於std :: istream的解決方案開始。 – Arunmu
'stream'是面向字符的解決方案,不適合我的問題。我認爲。 – xmllmx