c++ - 如何在 map 中使用 const?

标签 c++ dictionary iterator

我在调用时遇到问题:

m_baseMap.find(baseName)->second->AddVehicale(vehicaleToAdd);

m_baseMap 下有一条红线,错误是:“对象具有与成员函数不兼容的类型限定符”。 basemap 定义如下:

map <string, const Base*> m_baseMap;

我该如何解决?

最佳答案

问题不在于 find()但是调用 AddVehicale 因为 map 指定了 const Base* .您要么需要制作 mapmap<string, Base *>或者确保 AddVehicale是一个 const 方法(这意味着您 promise 不会修改 map 中指向的对象)例如void Base::AddVehicale(Vehicale &v) const;

据我所知,编译器会根据当时映射本身是否为常量来选择是使用常量查找还是非常量查找(比如如果您对映射有常量引用)

附言Vehicale 拼写为 Vehicle(我用 google 拼写检查,如果我不确定,搜索这个词,它会建议正确的拼写)

关于c++ - 如何在 map 中使用 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722971/

相关文章:

python - 如何使用 Queryset 的值填充嵌套字典作为 Django 中的列表

javascript - 尝试在 javascript 中使用该库时无法找到模块 'collections/dict'

C++ for each loop with mutating vector

iterator - 是否有用于从 julia 中的类似生成器的函数创建快速迭代器的宏?

c++ - 在 C++ 中以编程方式获取系统启动时间(Windows)

c++ - 为什么不使用std::move将std::unique_ptr复制到另一个?

c# - 如何为字典编写 getter 和 setter?

c++ - 在 vector 结构中显示 vector 结构

c++ - 为什么优化器会删除我的代码?

c++ - glDebugMessageCallback 导致段错误