cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
remove_copy()//在复制过程中删除一些数据
remove_copy_if()
删除性算法:
remove()
remove_if()
remove_copy()
remove_copy_if()
unique()
unique_copy()
error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可
error C2039: “push_back”: 不是“std::multiset<int,std::less<int>,std::allocator<_Ty>>”的成员
error C3861: “inserter”: 找不到标识符,需要包含#include <iterator>
error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表
少了<int> , std::stream_iterator<int>(cout," ");
bind2nd(less<int>(),4));预定义函数适配器
1 /*cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if 2 3 remove_copy()//在复制过程中删除一些数据 4 remove_copy_if() 5 6 7 删除性算法: 8 remove() 9 remove_if() 10 remove_copy() 11 remove_copy_if() 12 unique() 13 unique_copy() 14 15 error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;” 16 vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可 17 18 error C2039: “push_back”: 不是“std::multiset<int,std::less<int>,std::allocator<_Ty>>”的成员 19 20 21 error C3861: “inserter”: 找不到标识符,需要包含#include <iterator> 22 23 error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表 24 少了<int> , std::stream_iterator<int>(cout," "); 25 bind2nd(less<int>(),4));预定义函数适配器 26 */ 27 #include <iostream> 28 #include <algorithm> 29 #include <vector> 30 #include <list> 31 #include <set> 32 #include <functional>//使用到了less<int>(),预定义函数对象 33 #include <iterator> 34 35 using namespace std; 36 template <typename TT1> 37 void print(TT1 &ilist) 38 { 39 for (TT1::iterator iter = ilist.begin(); iter != ilist.end(); ++iter) 40 cout << *iter << ' '; 41 cout << endl; 42 } 43 44 int main() 45 { 46 list<int> ilist; 47 for (int i = 1; i <= 6; ++i) 48 ilist.push_back(i); 49 for (int i = 1; i <= 9; ++i) 50 ilist.push_back(i); 51 print(ilist); 52 53 multiset<int> iset; 54 cout << "把ilist里面小于4的数据放入multiset容器里面,其它数remove掉,删除掉" << endl; 55 remove_copy_if(ilist.begin(),ilist.end(),inserter(iset,iset.end()),bind2nd(less<int>(),4)); 56 57 print(iset); 58 59 cout << "用输出流迭代器输出,一边复制,一边删除3,最后输出到cout" << endl; 60 remove_copy(ilist.begin(),ilist.end(),ostream_iterator<int>(cout," "),3); 61 62 cout << "用输出流迭代器输出,一边复制,一边删除大于4的数,最后输出到cout" << endl; 63 remove_copy_if(ilist.begin(), ilist.end(), ostream_iterator<int>(cout," "), bind2nd(greater<int>(), 4)); 64 65 return 0; 66 }