[英]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.