亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在向量:Resize()和向量:Reserve()之間的選擇

在向量:Resize()和向量:Reserve()之間的選擇

C++
aluckdog 2019-07-01 09:34:27
在向量:Resize()和向量:Reserve()之間的選擇我正在給我的a預先分配一些記憶vector成員變量下面的代碼是最小的部分class A {   vector<string> t_Names;public:   A () : t_Names(1000) {}};在某個時候,如果t_Names.size()等號1000..我打算把尺寸擴大到100..如果它到達1100,再次增加100諸若此類。我的問題是,在vector::resize()和vector::reserve()..在這種情況下還有更好的選擇嗎?編輯:我對t_Names..我估計它就在附近700到800..但在定(很少)情況下,它能長得比1000.
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

當您不希望在保留時初始化對象時,請保留。此外,當您調整大小時,您可能更喜歡在邏輯上區分和跟蹤它的計數和它的使用計數。因此,接口中有一個行為差異-向量在保留時將表示相同數量的元素,并且在您的場景中調整大小時會有100個元素大。

在這種情況下還有更好的選擇嗎?

這完全取決于您在對抗默認行為時的目標。有些人會喜歡定制的分配器-但我們確實需要一個更好的想法,知道你想在你的程序中解決什么問題,以便向你提供更好的建議。

FWIW,許多向量實現在必須增長時,只需將分配的元素數增加一倍-您是試圖最小化峰值分配大小,還是試圖為某個無鎖程序或其他程序預留足夠的空間?


查看完整回答
反對 回復 2019-07-01
  • 3 回答
  • 0 關注
  • 517 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號