簡體   English   中英

錯誤:&#39;類 std::unique_ptr <std::set<long unsigned int> &gt;&#39; 沒有名為 &#39;size&#39; 的成員

[英]error: 'class std::unique_ptr<std::set<long unsigned int> >' has no member named 'size'

我正在嘗試調試用 C++ 編寫的應用程序中的現有代碼,而我正在嘗試將 unique_pointer 打印到類型為 unsigned long 的 std:set,我正面臨編譯錯誤

error: 'class std::unique_ptr<std::set<long unsigned int> >' has no member named 'size'

下面是我嘗試使用 cout 打印的代碼片段。

auto current_list = std::make_unique<std::set<uint64_t>>(); 
std::cout << "Number of elements in current_list is : " << current_list.size();

我是 unique_ptr 的新手,我什至嘗試過使用 current_list.begin() 初始化的迭代器,但這些助手中沒有一個與變量 current_list 相關聯。

請幫助我了解我失蹤的地方。

謝謝,斯里尼。

智能指針大多類似於指針,您需要->訪問指針對象的成員:

current_list->size()

或者:

(*current_list).size()

或者,對於std::unique_ptr / std::shared_ptr

current_list.get().size()

(並且不要忘記在取消引用之前檢查nullptr )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM