标签: bimap

Guava的BiMap和LinkedHashMap问题

在番石榴是否可能,

  1. BiMap对密钥值和多个值进行反向查找?确切地说,我有密钥和相应的多个值,我想从一个值获取密钥.

  2. 要存储多个值LinkedHashMap?确切地说,我想以某种顺序存储,键 - 多个值,因此我可以在列表中获得关键位置.

java bimap guava data-structures

2
推荐指数
1
解决办法
2421
查看次数

我们使用BiMap解决的问题

我正在回顾Googles Guava API的功能,我遇到了一个我在"真实世界编程"体验中没有看到过的数据结构,即BiMap.对于给定值,这种构造的唯一好处是能够快速检索密钥吗?是否存在使用BiMap最佳表达解决方案的问题?

java bimap guava

2
推荐指数
2
解决办法
897
查看次数

find()有关boost bimap的问题

我有以下代码:

wxString getColorName(const wxColour& color)
{
    typedef ColorComboBox::ColorMap::right_const_iterator ConstColorIterator;
    ColorComboBox::ColorMap colorMap = ColorComboBox::getDefaultChoices();
    ConstColorIterator it = colorMap.right.find(color);
    return it != colorMap.right.end() ? it->second :
            ColorComboBox::CUSTOM_COLOR;
}
Run Code Online (Sandbox Code Playgroud)

其中定义了ColorMap

typedef boost::bimaps::bimap \
            <wxString, boost::bimaps::vector_of<wxColour> > \
            ColorMap;
Run Code Online (Sandbox Code Playgroud)

我一直得到一个很长的模板错误,基本上说找不到查找功能.然而

ColorMap::left_const_iterator it = choices_.left.find(GetValue());
Run Code Online (Sandbox Code Playgroud)

编译好.
我有一个预感,find函数只在某些集合类型的bimap中定义.我不能使用set_of wxColours,因为wxColour无法比较.(这甚至意味着什么?)我也尝试将集合类型更改为list_of,但这也不起作用.我使用bimap的全部意义在于,无论哪种方式,我都能找到价值观.我使用了错误的容器吗?是否有另一种我可以用于wxColour的集合类型,它允许我使用find函数?

编辑: 我最终创建了自己的容器类.

c++ boost bimap

1
推荐指数
1
解决办法
2372
查看次数

在定义成员类后重新声明成员类是否合法?

我在编译boost.bimap库时遇到问题.我的测试程序是一个空白的主函数,只有一个include指令(如#include <boost/bimap.hpp>).经过一些调查后,我发现预处理器已经从头文件中做了一些有趣的构造,如:

struct A { struct B{}; struct B; };
Run Code Online (Sandbox Code Playgroud)

我不知道这是否正确,但gcc接受它,而clang和icc则不接受.谁是对的,我该怎么做才能用bimap库编译程序?不幸的是,我不能在这种情况下使用gcc.

c++ bimap c-preprocessor boost-bimap

0
推荐指数
1
解决办法
228
查看次数

标签 统计

bimap ×4

c++ ×2

guava ×2

java ×2

boost ×1

boost-bimap ×1

c-preprocessor ×1

data-structures ×1