gpt4 book ai didi

c++ - Boost::Bimap 等价于双向 multimap

转载 作者:IT老高 更新时间:2023-10-28 22:19:20 28 4
gpt4 key购买 nike

问题的第一部分是我正在尝试使用 boost::bimap,但从文档中我不清楚如何定义双向 multimap 。

问题的第二部分是我需要它是一个方向的 map 和另一个方向的多 map ,这可以使用 boost::bimap 来完成吗?

有没有人有这方面的经验或者可以给我指出正确的页面?

最佳答案

一切都在文档中... http://www.boost.org/doc/libs/1_51_0/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html

typedef boost::bimap<bimaps::multiset_of<int>, bimaps::set_of<int>> bimap_t;

示例。

#include <iostream>
#include <boost/bimap.hpp>
#include <boost/bimap/set_of.hpp>
#include <boost/bimap/multiset_of.hpp>

namespace bimaps = boost::bimaps;

int main()
{
typedef boost::bimap<bimaps::multiset_of<int>, bimaps::set_of<int>> bimap_t;
typedef bimap_t::value_type value_type;
bimap_t bimap;
bimap.insert(value_type(1, 1));
bimap.insert(value_type(1, 2));
auto& left = bimap.left;
auto it = left.find(1);
std::cout << "LEFT" << std::endl;
for (; it != left.end(); ++it)
{
std::cout << it->first << " " << it->second << std::endl;
}
auto& right = bimap.right;
auto r_it = right.find(2);
std::cout << "RIGHT" << std::endl;
for (; r_it != right.end(); ++r_it)
{
std::cout << r_it->first << " " << r_it->second << std::endl;
}
}

关于c++ - Boost::Bimap 等价于双向 multimap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174997/

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