我正在尝试使用 boost::multi_index 创建一个 URL 管理对象。它有 2 个索引,每个路径项的一个索引位置和一个用于查找该项目的索引键。
class InternalPath
{
public:
struct PathItem
{
int Position;
std::string Key;
std::string Path;
};
typedef boost::multi_index_container<
PathItem,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<boost::multi_index::member<PathItem,int,&PathItem::Position>>,
boost::multi_index::ordered_unique<boost::multi_index::member<PathItem,std::string,&PathItem::Key>>
>
> PathContainer;
private:
PathContainer path_;
};
但是有一个问题,并非所有项目都有它的关键。大多数项目只包含位置和路径。我希望 key 是唯一的。现在,当我插入多个非关键项时,问题就会出现。
是否可以允许带有空字符串的键在容器中包含多个项目。如果不是,我应该怎么做才能克服这个问题?