for(list<Employee>::iterator it = list1.begin();it != list1.end();++it) { list<Employee>::iterator result = find_if(it,it++,com_10000); list2.push_back(*result); }想要实现把list1中大于10000的数放到list2中
时间: 2024-02-11 12:07:49 浏览: 72
使用泛型集合List<T>-C#教程实用版 ppt
这段代码有一些问题,首先是 `it++` 在 `find_if` 函数中被使用,这样会导致 `it` 和 `result` 指向不同的元素,因此会把不符合条件的元素加入到 `list2` 中。其次,没有给出 `com_10000` 的定义,这可能导致无法正确判断元素是否大于 10000。最后,这段代码只能处理 `Employee` 类型的元素,不能处理其他类型。
如果要实现把 `list1` 中大于 10000 的元素放到 `list2` 中,可以使用以下代码:
```c++
for (auto it = list1.begin(); it != list1.end(); ++it) {
if (*it > 10000) {
list2.push_back(*it);
}
}
```
这样可以避免上述问题,并且可以处理任何类型的元素。
阅读全文