3
我正在調查<algorithm>
的fill
和fill_n
函數,對我來說他們似乎對同樣的事情做了些許不同的定義。是fill_n和填充相同的功能,但具有不同的參數重載?
這是真的,如果不是,它們有什麼不同?
他們的描述的措辭似乎大致相同(我從MSDN讀取fill_n
和fill
)。
如果它們相同,那麼這兩個函數都可用的優點是什麼?
這是給開發者更多的選擇,還是比另一個更快?
我正在調查<algorithm>
的fill
和fill_n
函數,對我來說他們似乎對同樣的事情做了些許不同的定義。是fill_n和填充相同的功能,但具有不同的參數重載?
這是真的,如果不是,它們有什麼不同?
他們的描述的措辭似乎大致相同(我從MSDN讀取fill_n
和fill
)。
如果它們相同,那麼這兩個函數都可用的優點是什麼?
這是給開發者更多的選擇,還是比另一個更快?
它們不是相同的功能,沒有。 std::fill
填充一個範圍,給定一個開始和結束迭代器。給定一個起始迭代器和一個數量,std::fill_n
填充一定數量的元素。 fill_n
是輸出迭代器有用,當有沒有辦法讓你得到一個結束迭代器,如用std::ostream_iterator
:
std::fill(std::ostream_iterator<int>(std::cout), ???, x);
^^^
what do I put here?
std::fill_n(std::ostream_iterator<int>(std::cout), 25, x);
的例子幫助它清除掉了很多,感謝大家的幫助。 – mmurphy
好解釋! –