我最近更新了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:\Users\Kevin\source\repos\Sample\Sample\Sample.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)
{
}
}
答案 0 :(得分:2)
_Pairib
是一个内部实现细节,不应在您的代码中使用。最简单的解决方法是将所有这些替换为auto
:
auto res = test_map.insert(std::map<int, std::string>::value_type(0, "Test"));
但是如果您需要指定类型,则它是std::pair
,第一个元素是迭代器,第二个元素是bool。 (std::pair<iterator,bool>
,其中iterator
是std::map<int, std::string>::iterator
。)