c++ 编译器如何将值写入该构造中的对的第二个值?

jyztefdp  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(114)
map<int,int> a;
pair<std::map<int,int>::iterator ,bool> f;
f=(a.insert({0,0}));
cout<<f.second;

为什么输出1?
对于该对中的任何值,它始终输出1

bfrts1fy

bfrts1fy1#

这是因为boolf.second告诉你insert是否将pair<int,int>插入到Map中。1意味着它 * 确实 * 插入了它。
bool通常打印为0false)或1true)。您可以使用I/O操作器std::boolalpha使其改为打印truefalse
对于该对中的任何值,它始终输出1
不可以。如果您尝试插入pair,其 Key 值已存在于map<int,int>中,它将返回pair<std::map<int,int>::iterator ,bool>,其中boolfalse,并且迭代器将指向map<int,int>中的现有元素。

相关问题