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