gpt4 book ai didi

c++ - Boost multi_index unqiue 索引问题

转载 作者:行者123 更新时间:2023-11-30 02:54:41 24 4
gpt4 key购买 nike

我正在尝试使用 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 。大多数项目只包含位置和路径。我希望 key 是唯一的。现在,当我插入多个非关键项目时,问题就来了。

是否可以允许空字符串的键在容器中有多个项目。如果不是,我应该怎么做才能克服这个问题?

最佳答案

使用 Boost.Variant 的稍微更优雅的解决方案:

struct PathItem
{
PathItem(int p,const std::string& k,const std::string& pt):
Position(p),Key(k),Path(pt){}

PathItem(int p,const std::string& pt):
Position(p),Key(p),Path(pt){}

int Position;
boost::variant<int,std::string> Key;
std::string Path;
};

关于c++ - Boost multi_index unqiue 索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com