如何使引用变量提升::bimap.left
How to make reference variable to boost::bimap.left?
我正在使用boost::bimap
将整数映射到字符串:
typedef boost::bimap<int, std::string> ParamIDStrings;
typedef ParamIDStrings::value_type id_pair;
extern const ParamIDStrings paramIDStrings;
我正在尝试创建引用变量,以便编写如下代码:
paramIDStringsByID.at(5);
// Instead of having to remember which side is which:
paramIDStrings.left.at(5);
但是我很难解释 Boost 文档,以了解bimap::left
是什么类型。
我试过了:
// Compiler throws error: invalid use of template-name 'boost::bimaps::bimap' without an argument list
boost::bimaps::bimap::left ¶mIDStringsByID = paramIDStrings.left;
// Compiler throws error: 'paramIDStrings' does not name a type
paramIDStrings::left_map ¶mIDStringsByID = paramIDStrings.left;
// Compiler throws error: invalid initialization of reference of type boost::bimaps::bimap<int, std::__cxx11::basic_string<char> >::left_map
boost::bimaps::bimap<int,std::string>::left_map &cParamIDStringsByID = cParamIDStrings.left;
您可以使用
auto &
让编译器为您完成工作。
如果你想知道推导的类型,你可以使用这里的一个技巧让编译器告诉你。
boost/bimap/bimap.hpp
有一个typedef:left_map
和right_map
。所以你可以做到:
paramIDStrings::left_map ¶mIDStringsByID = paramIDStrings.left;
相关文章:
- 如何在c++中只将键插入到bimap的一侧
- 在提升::bimap中移位值
- 错误:"Left of getValue must have class/struct/union"
- 编译错误:"lvalue required as left operand of assignment" 不确定原因
- 输出 [left]=input[i] 行中的 c++ 代码中存在无效的类型错误
- C++视图的一侧与视图值的另一侧具有不同的键时,bimap 是否可能?怎么做?
- 是否可以覆盖 "find" 和 "erase" boost::bimaps::bimap.left 的方法?怎么办?
- C++指针算术"lvalue required as left operand of assignment"错误
- 是boost :: bimap超杀击功能
- 用于"Ctrl + left arrow"和"Ctrl + right arrow"的八进制代码
- C boost :: bimap insert()方法不起作用
- 重载运算符 [] 并且没有收到"lvalue required as left operand of assignment"错误
- 为什么这句话"The expression can be used only as the left-hand operand of a member function call"在 [expr.re
- 如何处理 MFC 中编辑框的'Left mouse Clicked'事件
- 螺纹将其插入BIMAP
- "The order of evaluation of expressions is left to right."是什么意思
- 得到错误"left of '.toString' must have class/struct/union",即使 toString 应该有一个合适的对象
- 在表达式 left() = right() 中,为什么首先对 right() 进行排序
- 将 bimap 写入二进制文件,然后读取它
- 如何使引用变量提升::bimap.left