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));预定义函数适配器
/*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));预定义函数适配器
*/
#include <iostream>
#include <algorithm>
#include <vector>
#include <list>
#include <set>
#include <functional>//使用到了less<int>(),预定义函数对象
#include <iterator>
using namespace std;
template <typename TT1>
void print(TT1 &ilist)
{
for (TT1::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl;
}
int main()
{
list<int> ilist;
for (int i = 1; i <= 6; ++i)
ilist.push_back(i);
for (int i = 1; i <= 9; ++i)
ilist.push_back(i);
print(ilist);
multiset<int> iset;
cout << "把ilist里面小于4的数据放入multiset容器里面,其它数remove掉,删除掉" << endl;
remove_copy_if(ilist.begin(),ilist.end(),inserter(iset,iset.end()),bind2nd(less<int>(),4));
print(iset);
cout << "用输出流迭代器输出,一边复制,一边删除3,最后输出到cout" << endl;
remove_copy(ilist.begin(),ilist.end(),ostream_iterator<int>(cout," "),3);
cout << "用输出流迭代器输出,一边复制,一边删除大于4的数,最后输出到cout" << endl;
remove_copy_if(ilist.begin(), ilist.end(), ostream_iterator<int>(cout," "), bind2nd(greater<int>(), 4));
return 0;
}