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,std::allocator<_Ty>>”的成员


 error C3861: “inserter”: 找不到标识符,需要包含#include

 error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表
 少了 , std::stream_iterator(cout," ");
 bind2nd(less(),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,std::allocator<_Ty>>”的成员


 error C3861: “inserter”: 找不到标识符,需要包含#include 

 error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表
 少了 , std::stream_iterator(cout," ");
 bind2nd(less(),4));预定义函数适配器
*/
#include 
#include 
#include 
#include 
#include 
#include //使用到了less(),预定义函数对象
#include 

using namespace std;
template 
void print(TT1 &ilist)
{
	for (TT1::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;
}

int main()
{
	list 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 iset;
	cout << "把ilist里面小于4的数据放入multiset容器里面,其它数remove掉,删除掉" << endl;
	remove_copy_if(ilist.begin(),ilist.end(),inserter(iset,iset.end()),bind2nd(less(),4));

	print(iset);

	cout << "用输出流迭代器输出,一边复制,一边删除3,最后输出到cout" << endl;
	remove_copy(ilist.begin(),ilist.end(),ostream_iterator(cout," "),3);

	cout << "用输出流迭代器输出,一边复制,一边删除大于4的数,最后输出到cout" << endl;
	remove_copy_if(ilist.begin(), ilist.end(), ostream_iterator(cout," "), bind2nd(greater(), 4));

	return 0;
}

 

你可能感兴趣的:(C++)