_Pairib":不是"std::map,std::分配器"的成员>>

_Pairib': is not a member of 'std::map,std::allocator>>

本文关键字:std gt 成员 map Pairib 不是 分配器      更新时间:2023-10-16

我最近更新了我的Visual Studio,现在我收到了很多与_Pairib相关的错误。有谁知道发生了什么以及我该如何解决这个问题?

错误

C2039    '_Pairib': is not a member of 'std::map<int,std::string,std::less<int>,std::allocator<std::pair<const
_Kty,_Ty>>>'
with
[
_Kty=int,
_Ty=std::string
]
Sample  C:UsersKevinsourcereposSampleSampleSample.cpp    12

示例代码

int main()
{
std::map<int, std::string> test_map;
std::map<int, std::string>::_Pairib res = test_map.insert(std::map<int, std::string>::value_type(0, "Test"));
if (!res.second)
{
}
}
_Pairib

是一个内部实现细节,不应该在你的代码中使用。 最简单的解决方法是用auto替换所有这些:

auto res = test_map.insert(std::map<int, std::string>::value_type(0, "Test"));

但是,如果您需要指定类型,它是一个std::pair,第一个元素是迭代器,第二个元素是布尔值。 (std::pair<iterator,bool>iterator在哪里std::map<int, std::string>::iterator