2016-03-07 46 views

回答

2

從後備存儲的角度來看你是push還是emplace並不重要。爭論的區別在於。

因此,通常的重定位機制已到位。當目前分配的連續存儲耗盡時,它們將移動元素。

迭代器失效的規則保持不變。在http://en.cppreference.com/w/cpp/container/vector上籤出「迭代器失效」。

0

不幸的是,這是標準的:如果新的size()大於capacity(),那麼所有的迭代器和引用都是無效的。

0

如果該矢量的後備存儲的當前容量不能容納一個新元素,則必須分配一個新的較大的後臺存儲,將所有現有元素移動到該元素,然後可以構建新元素。

使用emplace_back()不會改變後備存儲必須足夠大以適應新元素的事實。

相關問題