Tom*_*mek 8 c++ conditional insert set
我试图set.insert (key)用作条件,如果正确插入密钥(意味着密钥不存在于集合中),那么它应该继续并执行某种代码.例如,类似于:
if (set.insert( key )) {
// some kind of code
}
Run Code Online (Sandbox Code Playgroud)
这是允许的吗?因为编译器抛出了这个错误:
conditional expression of type 'std::_Tree<_Traits>::iterator' is illegal
Run Code Online (Sandbox Code Playgroud)
Cha*_*lie 14
采用单个键值的insert版本应返回a std::pair<iterator,bool>,其中bool指示是否进行了插入.值true表示已插入值,false表示该值已存在.所以你的条件看起来像这样:
if( set.insert( key ).second ) {
// code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |