#include <iostream>
#include <map>
using namespace std;
int main()
{
std::map<int, bool> set;
cout << (int)set.insert({ 5,false }).second << endl;
return 0;
}
我不知道为什么结果是 1 而不是 0,而 second
是 false。
最佳答案
std::map::insert
的返回值为 std::pair<iterator, bool>
其中bool
表示是否发生插入。 cout << (int)set.insert({ 5,false }).second << endl;
只会打印插入是否成功。
要执行您想要的操作,您需要使用返回的 std::pair
中的第一个值这是一个迭代器,然后使用它来检查您插入的新键/值对的值:
#include <iostream>
#include <map>
int main()
{
std::map<int, bool> set;
std::cout << set.insert({5, false}).first->second << '\n';
return 0;
}
关于c++ - std::map<int,bool> 插入结果错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68692453/