比如我有一個這樣的數組:如何將數組中的所有元素更改爲特定值?
bool log[100000]
而且我有循環,其中我想設置日誌爲True的所有元素的值。換句話說,我想擦除在循環的每個循環之後所做的所有更改。我怎麼能這樣做?我可以改變不是全部,但我們可以說100個值嗎?
比如我有一個這樣的數組:如何將數組中的所有元素更改爲特定值?
bool log[100000]
而且我有循環,其中我想設置日誌爲True的所有元素的值。換句話說,我想擦除在循環的每個循環之後所做的所有更改。我怎麼能這樣做?我可以改變不是全部,但我們可以說100個值嗎?
要使用true
填充整個陣列:
std::fill(begin(log), end(log), true);
要使用true
填充第一100個元素:
std::fill(begin(log), begin(log) + 100, true);
begin
和end
添加在C++ 11;如果您的編譯器和庫不支持它們,請考慮使用std::array<bool, N>
代替,其中包含begin
和end
成員函數。無論如何,你真的應該使用std::array
模板,因爲它沒有開銷,提供了標準的序列容器接口,並且可以幫助你避免C數組的愚蠢語義。
或者,考慮'std :: vector
@Rob:對於這種情況,應該考慮'std :: vector
@Rob:'std :: vector'如何減少內存佔用空間..任何指針?謝謝。 – Lazer 2012-03-02 18:57:21
你通常不想用100,000'bool'來浪費堆棧。 – 2012-03-02 17:41:51
好的,這裏的難度在哪裏?即使不是C++的方式,你可以寫一個for循環並做到這一點? – 2012-03-02 17:43:46