c++ - 使用 set.insert( key ) 作为条件?

标签 c++ insert conditional set

我正在尝试使用 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/

相关文章:

java - 无法打开包含文件 : 'jni.h' : No such file or directory

c++ - OpenMP,并行 for 循环,bigIntegers

algorithm - 在排序和旋转列表中插入一个元素

mysql - 插入具有不同选择条件的多个值?

ms-word - Word 2010条件 block

css - 有条件地改变angularjs元素的颜色?

c++ - 将两个整数值连接成一个 char 数组

sql - 将范围自动插入到 Oracle 表中

Angular2 PrimeNG 条件行格式化

c++ - 我必须运行 cmake 两次才能编译项目