我正在尝试使用 set.insert (key)
作为条件,如果正确插入 key (意味着该 key 不存在于集合中)那么它应该继续并执行某种代码。例如,像这样的东西:
if (set.insert( key )) {
// some kind of code
}
这是允许的吗?因为编译器抛出这个错误:
conditional expression of type 'std::_Tree<_Traits>::iterator' is illegal
最佳答案
采用单个键值的插入版本应返回 std::pair<iterator,bool>
,其中 bool 表示是否进行了插入。值 true 表示已插入该值,false 表示该值已存在。所以你的条件看起来像这样:
if( set.insert( key ).second ) {
// code
}
关于c++ - 使用 set.insert( key ) 作为条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/220718/