cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if

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 }

 

posted @ 2020-02-25 11:53  txwtech  阅读(367)  评论(0编辑  收藏  举报