第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

數(shù)組的unique_ptr有什么用嗎?

數(shù)組的unique_ptr有什么用嗎?

C++
ibeautiful 2019-10-05 15:29:15
std::unique_ptr 支持數(shù)組,例如:std::unique_ptr<int[]> p(new int[10]);但是需要嗎?也許使用std::vector或更方便std::array。您發(fā)現(xiàn)該構(gòu)造有什么用嗎?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

有些人甚至沒有使用std::vector分配器,也不享受使用的奢侈。有些人需要一個動態(tài)大小的數(shù)組,所以std::array就不用了。有些人從其他已知返回數(shù)組的代碼中獲取數(shù)組。而且該代碼不會被重寫以返回a vector或其他內(nèi)容。


通過允許unique_ptr<T[]>,您可以滿足這些需求。


簡而言之,您unique_ptr<T[]>在需要時使用。當替代品根本無法為您服務(wù)時。這是不得已的工具。


查看完整回答
反對 回復 2019-10-05
?
慕村9548890

TA貢獻1884條經(jīng)驗 獲得超4個贊

需要權(quán)衡,然后選擇與您想要的解決方案匹配的解決方案。從我的頭頂上:


初始尺寸


vector并unique_ptr<T[]>允許在運行時指定大小

array 僅允許在編譯時指定大小

調(diào)整大小


array并且unique_ptr<T[]>不允許調(diào)整大小

vector 確實

存儲


vector并將unique_ptr<T[]>數(shù)據(jù)存儲在對象外部(通常在堆上)

array 將數(shù)據(jù)直接存儲在對象中

復制中


array并vector允許復制

unique_ptr<T[]> 不允許復制

交換/移動


vector并unique_ptr<T[]>具有O(1)時間swap和移動操作

array具有O(n)次時間swap和移動操作,其中n是數(shù)組中元素的數(shù)量

指針/引用/迭代器無效


array 確保即使對象處于活動狀態(tài),指針,引用和迭代器也不會失效 swap()

unique_ptr<T[]>沒有迭代器;指針和引用僅swap()在對象處于活動狀態(tài)時才失效。(交換之后,指針指向交換對象所在的數(shù)組,因此在這種意義上它們?nèi)匀皇恰坝行У摹?。?/p>

vector 可能會使任何重新分配上的指針,引用和迭代器無效(并提供一些保證,即重新分配只能在某些操作上進行)。

與概念和算法的兼容性


array而且vector都是容器

unique_ptr<T[]> 不是容器

我確實必須承認,這似乎是基于策略設(shè)計進行某些重構(gòu)的機會。


查看完整回答
反對 回復 2019-10-05
?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

可能使用a的原因之一unique_ptr是,如果您不想支付對數(shù)組進行值初始化的運行時成本。


std::vector<char> vec(1000000); // allocates AND value-initializes 1000000 chars


std::unique_ptr<char[]> p(new char[1000000]); // allocates storage for 1000000 chars

該std::vector構(gòu)造函數(shù)和std::vector::resize()將值初始化T-但new不會做,如果T是一個POD。


請參見C ++ 11中的值初始化對象和std :: vector構(gòu)造函數(shù)


請注意,這vector::reserve不是替代方案:在std :: vector :: reserve之后訪問原始指針是否安全?


這是同樣的原因,C程序員可能選擇malloc了calloc。


查看完整回答
反對 回復 2019-10-05
  • 3 回答
  • 0 關(guān)注
  • 1618 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號