Ich mag den Schlüssel/Index in einer anderen Karte wie diese sperren:Wie verwendet man einen boost :: mutex als zugeordneten Typ in std :: map?
std::map<int, boost::mutex> pointCloudsMutexes_;
pointCloudsMutexes_[index].lock();
Allerdings ist mir die folgende Fehlermeldung erhalten:
/usr/include/c++/4.8/bits/stl_pair.h:113: error: no matching function for call to 'boost::mutex::mutex(const boost::mutex&)'
: first(__a), second(__b) { }
^
Es mit std::vector
scheint zu funktionieren, aber nicht mit std::map
. Was mache ich falsch?
man fragt sich, welche Anforderungen zu der Designentscheidung geführt haben, dass eine Karte von Mutexen eine gültige Lösung ist. Es gibt wahrscheinlich einen viel eleganteren Weg, um das zu erreichen, was Sie wollen. –
Eine gleichzeitige hashmap – Raaj
Dieser Entwurf wird keine gleichzeitige Hash-Karte sein. Es wird eine nicht gleichzeitige Karte von Mutexen sein. Sie müssen die gesamte Map umbrechen und sie mit nur einem Mutex schützen. –