I'm coding with std::map
in C++11.
I've read this link, which told me that the C++11 standard guarantees that const method access to containers is safe from different threads.
As my understanding, it means that std::map::size()
is thread-safe, because this function is declared as size_type size() const noexcept;
.
Now I want to call the function However, there are two versions of std::map::find
thread-safely. For example, if (mp.find(xxx) != mp.end()) {}
.find
, one is const
and the other is non-const
:https://en.cppreference.com/w/cpp/container/map/find.
So how do I know which version of find
is calling? How can I force the const-version find
to be called in order to get a thread-safe code?
I knew there was a const version of std::map::cend()
, will if (mp.find(xxx) != mp.cend()) {}
work as expected?
Aucun commentaire:
Enregistrer un commentaire