cb42a_c++_STL_算法_替换_replace
replace(b,e,ov,nv),ov,old value, nv,new value
replace_if(b,e,p,v) 根据p的条件,全部更换成v的值
replace_copy(b1,e1,b2,ov,nv)//边复制变替换
replace_copy_if(b1,e1,b1,p,v)

error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可

bind2nd(less<int>(), 5),预定义函数对象,需要包含functional头文件名。
error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表
ostream_iterator(cout, " ")少了一个<int>
ostream_iterator<int>(cout," ")

1>d:\users\txwtech\projects\cb42a\cb42a\cb42a.cpp(63): error C2672: “replace_if”: 未找到匹配的重载函数
1>d:\users\txwtech\projects\cb42a\cb42a\cb42a.cpp(63): error C2780: “void std::replace_if(const _FwdIt,const _FwdIt,_Pr,const _Ty &)”: 应输入 4 个参数,却提供了 5 个
参数写法错误。
replace_if(ilist2.begin(), ilist2.end(), ostream_iterator<int>(cout, " "), 5, 55);
正确写法:
replace_if(ilist.begin(), ilist.end(), bind2nd(less<int>(), 5), 0);

error C2275: “std::modulus<int>”: 将此类型用作表达式非法
bind2nd(modulus<int>(), 2),预定义函数对象<in>后面的小括号不要忘记了。

ostream_iterator<int>(cout, " ")流输出对象 ,#include <iterator>

 /*cb42a_c++_STL_算法_替换_replace
replace(b,e,ov,nv),ov,old value, nv,new value
replace_if(b,e,p,v) 根据p的条件,全部更换成v的值
replace_copy(b1,e1,b2,ov,nv)//边复制变替换
replace_copy_if(b1,e1,b1,p,v) error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可 bind2nd(less<int>(), 5),预定义函数对象,需要包含functional头文件名。
error C2955: “std::ostream_iterator”: 使用 类 模板 需要 模板 参数列表
ostream_iterator(cout, " ")少了一个<int>
ostream_iterator<int>(cout," ") 1>d:\users\txwtech\projects\cb42a\cb42a\cb42a.cpp(63): error C2672: “replace_if”: 未找到匹配的重载函数
1>d:\users\txwtech\projects\cb42a\cb42a\cb42a.cpp(63): error C2780: “void std::replace_if(const _FwdIt,const _FwdIt,_Pr,const _Ty &)”: 应输入 4 个参数,却提供了 5 个
参数写法错误。
replace_if(ilist2.begin(), ilist2.end(), ostream_iterator<int>(cout, " "), 5, 55);
正确写法:
replace_if(ilist.begin(), ilist.end(), bind2nd(less<int>(), 5), 0); error C2275: “std::modulus<int>”: 将此类型用作表达式非法
bind2nd(modulus<int>(), 2),预定义函数对象<in>后面的小括号不要忘记了。 ostream_iterator<int>(cout, " ")流输出对象 ,#include <iterator>
*/ #include <iostream>
#include <algorithm>
#include <vector>
#include <list>
#include <functional>
#include <iterator> using namespace std;
template <typename TT>
void print(TT &ilist)
{
for (TT::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl;
} int main()
{
list<int> ilist;
for (int i = ; i <= ; ++i)
ilist.push_back(i);
for (int i = ; i <= ; ++i)
ilist.push_back(i);
print(ilist);
/*for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl;*/ cout << "所有6替换成42" << endl;
replace(ilist.begin(), ilist.end(), , );
print(ilist); cout << "小于5的数替换成0" << endl;
replace_if(ilist.begin(), ilist.end(), bind2nd(less<int>(), ), );
print(ilist); list<int>ilist2;
for (int i = ; i <= ; ++i)
ilist2.push_back(i);
for (int i = ; i <= ; ++i)
ilist2.push_back(i);
print(ilist2); cout << "边复制,边替换,5,替换成55,直接输出到cout" << endl;
replace_copy(ilist2.begin(), ilist2.end(), ostream_iterator<int>(cout, " "), , );
cout << endl;
cout << "边复制,边替换,小于5,替换成42,直接输出到cout" << endl;
replace_copy_if(ilist2.begin(), ilist2.end(), ostream_iterator<int>(cout, " "), bind2nd(less<int>(), ), ); cout << endl;
cout << "边复制,边替换,取模2为1时,替换成0,直接输出到cout" << endl;
cout << "就是所有奇数替换成0" << endl;
replace_copy_if(ilist2.begin(), ilist2.end(), ostream_iterator<int>(cout, " "), bind2nd(modulus<int>(), ), );
return ;
}

cb42a_c++_STL_算法_替换_replace的更多相关文章

  1. cb51a_c++_STL_算法_根据第n个元素排序nth_element

    cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...

  2. cb50a_c++_STL_算法_局部排序partial_sort

    cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...

  3. cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort

    cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...

  4. cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition

    cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...

  5. cb47a_c++_STL_算法_排列组合next_prev_permutation

    cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...

  6. cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance

    cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...

  7. cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据

    cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...

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

    cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...

  9. cb43a_c++_STL_算法_删除_(1)remove_remove_if

    cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...

随机推荐

  1. 二,文件上传控件el-upload

    需求: 上传文件,保存到服务器,并保存历史记录 上效果图 <el-form-item label="文件"> <el-upload ref="uploa ...

  2. Vue全局组件创建三种方法

    <my-com1></my-com1> <my-com2></my-com2> <template id="tmp1"> ...

  3. PHP绘图案例讲解验证码制作

    <?php header("Content-type: image/png");//声明浏览器解析为图片 $width=200; $height=100; $color1=i ...

  4. 使用webstorm 搭建 vue 开发环境

    一.首先安装 node.js 安装成功后在cmd里面使用:node -v 命令查看安装是否成功 下载链接: 链接:https://pan.baidu.com/s/1CL9J4Ryp3sL0zPYKJy ...

  5. 解码问题--leetcode:91 (2019商汤笔试)

    题目:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'. 现在给一串数字,给出有多少种可能的译码结果. 想法: 该题就是动态规划问题,建议在写 ...

  6. Java学习之路【第一篇】:前言

    Java 语言概述 一.什么是Java语言 Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言.所谓编程语言,是计算机的语言,人们 ...

  7. 获取元素节点的子节点 & 获取文本节点

    1. 获取元素节点的子节点(**只有元素节点才有子节点):              ①. childNodes 属性获取全部的子节点, 但该方法不实用. 因为如果要获取指定的节点          ...

  8. 设计Dog类 代码参考

    #include <iostream> #include <string> using namespace std; class Dog { private: string n ...

  9. 使用ADMT和PES实现window AD账户跨域迁移-介绍篇

    使用 ADMT 和 pwdmig 实现 window AD 账户跨域迁移系列: 介绍篇 ADMT 安装 PES 的安装 ADMT:迁移组 ADMT:迁移用户 ADMT:计算机迁移 ADMT:报告生成 ...

  10. Java实现 LeetCode 790 多米诺和托米诺平铺(递推)

    790. 多米诺和托米诺平铺 有两种形状的瓷砖:一种是 2x1 的多米诺形,另一种是形如 "L" 的托米诺形.两种形状都可以旋转. XX <- 多米诺 XX <- &q ...