std::generate
返回void
:爲什麼std ::生成的返回狀態與std :: for_each類似?
template<typename ForwardIterator, typename Generator>
void generate(ForwardIterator first, ForwardIterator last, Generator gen);
雖然std::for_each
回報Function
:
template<typename InputIterator, typename Function>
Function for_each(InputIterator first, InputIterator last, Function f);
SGI的documentation表明for_each
的結果是返回可能在算法中已經變異的任何狀態很有用。 generate
不一樣嗎?這是一個疏忽嗎?還是有一個界面差異的基本原理?
'for_each'能夠「讀取」容器的內容。 'generate'只是覆蓋內容;返回任何東西會有什麼好處? –
假設我傳遞了一個隨機數生成器來生成。返回RNG的狀態將會很有用。 –
是的。但是這將是容器內容的不變。 –