互斥指针的集合

Set of mutex pointers

本文关键字:集合 指针      更新时间:2023-10-16

我正在尝试将多个互斥对象(指针(存储到一个集合中。

std::set<std::mutex*> mutex_set;    
addLock(const std::mutex* lock)
{
mutex_set.insert(lock)
}

由于这不起作用,我尝试了锁保护和独特的指针,但没有任何成功。将互斥锁存储到集合中的最佳方式是什么?

您的问题可能是由const引起的。编译代码:

std::set<std::mutex*> mutex_set;    
void addLock(std::mutex* lock)
{
mutex_set.insert(lock);
}

您还可以考虑避免使用原始指针,因为没有所有权语义(即谁拥有并可以删除指向的对象——在这种情况下是互斥体(。