c++ set and shared_ptr -


i have class x like:

class x {     public:         bool operator<(const scn& other) const; }; 

the have following code

std::multiset<std::shared_ptr<x>> m; 

my questions are:

  1. how data in m ordered? address of x(shared_ptr) or x.operator
  2. for m, if want access elements smallest bigest, can following code grantee that? if not, how?

    for (auto& : m) {     f(i); } 

your set ordered based on key_type std::shared_ptr<x>. std::shared_ptr<x> comparable, ordering of std::shared_ptr prevails.

for sake of reference, multiset defined as

template<     class key,     class compare = std::less<key>,     class allocator = std::allocator<key> > class multiset; 

as can seen, typename compare std::less<key> , std::less should overload function overload possibly implemented as

constexpr bool operator()(const t &lhs, const t &rhs) const  {     return lhs < rhs; } 

both lhs , rhs of type t in case key type have instantiated multiset std::shared_ptr<x>.


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -