error: 'class std::unordered_multimap<std::__cxx11::basic_string<char>, QWidget*>' has no member named 'lower_bound' auto ite = m_mIdMapWidget.lower_bound(frame.m_sMemberID); ^~~~~~~~~~~
时间: 2023-10-26 15:04:42 浏览: 77
HashmapBenchmark:子弹哈希映射(btHashMap)和C++标准库哈希映射(std)之间的基准测试
这个错误提示意味着你在 `std::unordered_multimap<std::__cxx11::basic_string<char>, QWidget*>` 类型的对象上调用了 `lower_bound` 函数,但该类型并没有名为 `lower_bound` 的成员函数。
`std::unordered_multimap` 类型的对象本身是支持 `lower_bound` 函数的,因此出现这个错误的原因可能是因为你的头文件或命名空间有误。
请确保在代码中包含了正确的头文件,并且在使用 `lower_bound` 函数时使用了 `std` 命名空间,例如:
```cpp
#include <unordered_map>
int main()
{
std::unordered_multimap<std::string, QWidget*> m_mIdMapWidget;
// 使用 lower_bound 函数
auto ite = m_mIdMapWidget.lower_bound("member_id");
// ...
}
```
如果你已经使用了正确的头文件和命名空间,但仍然遇到这个错误,请检查你的编译选项是否正确。如果使用了一些较旧的编译器,可能需要在编译时指定 `-std=c++11` 或更高版本的标准以支持 C++11 的新特性。
阅读全文