的搜索我有一個對象:在一組的shared_ptr <QString>
class Object {
public:
boost::shared_ptr<QString> const& name() const {reutrn _name;}
private:
boost::shared_ptr<QString> _name;
};
而一個multi_index設置
typedef
boost::multi_index_container<
Object,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<
boost::multi_index::const_mem_fun<
Object,
boost::shared_ptr<QString> const&,
& Object::name>,
StringPointerLess> > >
ObjectSet;
現在,如果我想找到的一套東西,我有QString
我需要將其複製到堆中並創建shared_ptr
。
是否可以避免這種不必要的複製操作,讓它保持原樣?
你確定你已經定義了ObjectSet嗎?通過索引'boost :: shared_ptr',如果兩個元素的'name'成員指向相同的字符串,則認爲它們是等價的; *如果它們指向的字符串相同,則認爲它們不相等。 –
2013-03-05 18:20:50
爲此我有'StringPointerLess'。 – user14416 2013-03-05 20:03:55