无效的二进制二进制操作数('const'和'const')

塔伦

我是C ++菜鸟,所以请不要介意您是否发现这个问题很愚蠢

我在下面的C ++中声明了map:

std::map<CartesianLocation, std::list<RadioSignal<RadioDevice>>> radioMap;

完整代码:

不知道,但是使用下面的代码,我可以解决我的问题

class RadioMap:public std::iterator_traits<CartesianLocation>, public Cloneable<RadioMap> {
private:
    std::map<const CartesianLocation*, const std::list<RadioSignal<RadioDevice>>*> radioMap;
    std::vector<RadioDevice> radioDevices;

public:
    void add(const CartesianLocation *location, const std::list<RadioSignal<RadioDevice>> *observedSignals){
        radioMap[location] = observedSignals;
}

在这一行,radioMap[location] = observedSignals;我以这个错误结束

_LIBCPP_TYPE_VIS_ONLY结构上的“二进制表达式无效的操作数('const CartesianLocation'和'const CartesianLocation')”: __x <__y;}};

知道我哪里错了吗?

火箭1111

您没有提供的比较器std::map,因此使用std::less但是std::less没有的重载CartesianLocationCartesianLocation也没有operator<),因此会出现错误。

您可以添加operator<

struct CartesianLocation
{
    //Other stuff
    bool operator<(const CartesianLocation& loc2) const
    {
        //Return true if this is less than loc2
    }
};

另一种方法是定义自定义比较器,例如:

struct comp
{
    bool operator()(const CartesianLocation& loc1, const CartesianLocation& loc2) const
    {
        //Compare the 2 locations, return true if loc1 is less than loc2
    }
};

然后,您可以将其传递给std::map

std::map<CartesianLocation, std::list<RadioSignal<RadioDevice>>, comp> radioMap;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无效的二进制二进制操作数('const'和'const')

来自分类Dev

无效的二进制二进制操作数(“ const Vector”和“ const Vector”)

来自分类Dev

二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

来自分类Dev

'int' 和 'const char [15]' 类型的无效操作数到二进制 'operator<<' ^

来自分类Dev

错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

来自分类Dev

二进制'operator +'类型为'const char *'和'const char [2]'的无效操作数

来自分类Dev

二进制'operator +'类型为'const char [8]'和'const char *'的无效操作数

来自分类Dev

错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

来自分类Dev

将类型为'char *'和'const char [2]'的c ++无效操作数转换为二进制'operator +'

来自分类Dev

二进制“ operator <<”类型为“ double”和“ const char [5]”类型的无效操作数

来自分类Dev

二进制表达式的无效操作数(“ int_node”和const“ int_node”)

来自分类Dev

二进制“ operator!=”类型为“ double”和“ const char [13]”类型的无效操作数

来自分类Dev

二进制表达式('std :: ostream'(aka'basic_ostream <char>')和'const char *')的无效操作数

来自分类Dev

尝试编写备份程序 (C++) 时将类型为“int(const char*)”和“const char [11]”的无效操作数转换为二进制“operator<<”

来自分类Dev

为什么添加“ const”可以解决“无效的操作数到二进制表达式”

来自分类Dev

无效的二进制二进制操作数(“ char(*)[36]”和“ char *”)

来自分类Dev

二进制“=”:未找到采用“const Thing”类型左侧操作数的运算符

来自分类Dev

无效的二进制二进制操作数('ostream'(aka'basic_ostream <char>')和'Date')

来自分类Dev

错误:对二进制==无效的操作数(具有“结构演示”和“结构演示”)

来自分类Dev

类型'std :: istream *'和'char'的无效操作数为二进制'operator >>'

来自分类Dev

错误:对二进制表达式无效的操作数(“ float”和“ float”)

来自分类Dev

无效的二进制表达式操作数(Int和NSNumber *)

来自分类Dev

对二进制*无效的操作数(具有'int'和'int *')

来自分类Dev

二进制“ operator +”类型为“ int *”和“ int *”的无效操作数

来自分类Dev

对二进制+(char *)和(char *)无效的操作数?

来自分类Dev

对二进制表达式无效的操作数(NSNumber * __strong和NSNumber *)

来自分类Dev

错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

来自分类Dev

对二进制表达式无效的操作数(“ NSMutableArray”和“ double”)

来自分类Dev

错误:二进制 + 的无效操作数(有 'char *' 和 'char *'),使用宏

Related 相关文章

  1. 1

    无效的二进制二进制操作数('const'和'const')

  2. 2

    无效的二进制二进制操作数(“ const Vector”和“ const Vector”)

  3. 3

    二进制表达式的无效操作数(“ RadioDevice”和“ const RadioDevice”)

  4. 4

    'int' 和 'const char [15]' 类型的无效操作数到二进制 'operator<<' ^

  5. 5

    错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

  6. 6

    二进制'operator +'类型为'const char *'和'const char [2]'的无效操作数

  7. 7

    二进制'operator +'类型为'const char [8]'和'const char *'的无效操作数

  8. 8

    错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

  9. 9

    将类型为'char *'和'const char [2]'的c ++无效操作数转换为二进制'operator +'

  10. 10

    二进制“ operator <<”类型为“ double”和“ const char [5]”类型的无效操作数

  11. 11

    二进制表达式的无效操作数(“ int_node”和const“ int_node”)

  12. 12

    二进制“ operator!=”类型为“ double”和“ const char [13]”类型的无效操作数

  13. 13

    二进制表达式('std :: ostream'(aka'basic_ostream <char>')和'const char *')的无效操作数

  14. 14

    尝试编写备份程序 (C++) 时将类型为“int(const char*)”和“const char [11]”的无效操作数转换为二进制“operator<<”

  15. 15

    为什么添加“ const”可以解决“无效的操作数到二进制表达式”

  16. 16

    无效的二进制二进制操作数(“ char(*)[36]”和“ char *”)

  17. 17

    二进制“=”:未找到采用“const Thing”类型左侧操作数的运算符

  18. 18

    无效的二进制二进制操作数('ostream'(aka'basic_ostream <char>')和'Date')

  19. 19

    错误:对二进制==无效的操作数(具有“结构演示”和“结构演示”)

  20. 20

    类型'std :: istream *'和'char'的无效操作数为二进制'operator >>'

  21. 21

    错误:对二进制表达式无效的操作数(“ float”和“ float”)

  22. 22

    无效的二进制表达式操作数(Int和NSNumber *)

  23. 23

    对二进制*无效的操作数(具有'int'和'int *')

  24. 24

    二进制“ operator +”类型为“ int *”和“ int *”的无效操作数

  25. 25

    对二进制+(char *)和(char *)无效的操作数?

  26. 26

    对二进制表达式无效的操作数(NSNumber * __strong和NSNumber *)

  27. 27

    错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

  28. 28

    对二进制表达式无效的操作数(“ NSMutableArray”和“ double”)

  29. 29

    错误:二进制 + 的无效操作数(有 'char *' 和 'char *'),使用宏

热门标签

归档