讓我們的我有初始化向量
struct Vector {
float i,j,k;
}
我想零VEC以下聲明的所有元素(I,J,K = 0)
std::vector <Vector> vec;
vec.resize(num,0);
我不希望使用reserve()然後push_back()一個接一個地置零。另一件事是,在成功初始化vec之後,我想在vec被操縱後將vec的所有成員重新設置爲零。有什麼像memset向量?
編輯: 我比較所有的麥克西摩和XEO的答案和結果 size_t size = vec.size(); vec.clear(); vec.resize(size);
的方法是最快的,如果他們在一個循環中經常重複。
關於重新設置,哪個更快,vec.clear ...或填充...? – Shibli 2012-01-05 15:29:10
@Shibli:他們幾乎可以肯定速度非常相似。如果對你很重要,那麼你必須測量它們。如果速度真的很重要,你可能會發現'memset'稍微快一些(見Xeo的答案),但是如果你修改你的類型以使它不再是POD,它將會以不確定的方式破壞,因此更加危險。再說一次,判斷它是否更快的唯一方法就是測量它。 – 2012-01-05 15:35:04