[英]Pass a vector of unique_ptr to function, const reference
我通常會傳遞一個包含原始指針的向量,如下所示:
someFunc(const std::vector<MyClass*>& classList){..}
我想知道你是否可以像這樣對unique_ptr做同樣的事情:
someFunc(const std::vector<std::unique_ptr<MyClass>>& classList){..}
? 它是否意味着同樣的事情?,即只讀。
是的你可以。 不,它並不意味着相同的事情: std::unique_ptr
表示指針所擁有的資源。 通用原始指針可以具有許多其他語義。
關於const的正確性,使用迭代器或operator[]
訪問向量的元素將產生對std::unique_ptr
的常量引用。 使用const std::unique_ptr<T>
,無法重新分配指針,同時可以修改指向的T
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.