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));预定义函数适配器

/*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;
}
发布了469 篇原创文章 · 获赞 211 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/txwtech/article/details/104494548