cb42a_c++_STL_算法_替换_replace
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的更多相关文章
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- 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) ...
- cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...
- cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...
- cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...
- cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
随机推荐
- spring的动态代理实现
Host.java package cn.zys.dynamiproxy; public class Host implements Rent{ public void rent(){ System. ...
- h5 编辑单选框的样式
radio单选框样式设置 input[type=radio] { display: inline-block; vertical-align: middle; width: 20px; height: ...
- JMeter中BeanShell Sampler
https://blog.51cto.com/11009785/2385492?source=dra 1.jmeter报错 jmeter.protocol.java.sampler.BeanShell ...
- vue中使用vue-qrcode生成二维码
要使用二维码,引入一个包就可以了,使用非常简单,话不多说,看代码吧 //1,引入, import VueQrcode from '@xkeshi/vue-qrcode'; Vue.component( ...
- 谈谈C#多线程开发:并行、并发与异步编程
阅读导航 一.使用Task 二.并行编程 三.线程同步 四.异步编程模型 五.多线程数据安全 六.异常处理 概述 现代程序开发过程中不可避免会使用到多线程相关的技术,之所以要使用多线程,主要原因或目的 ...
- idea本地Maven仓库不能下载依赖jar包的解决方案
1.确认maven是否正正常安装,是否配置了环境变量,可以通过命令 mvn -version 看是否显示maven的版本信息. 2.检查maven的setting.xml配置文件中本地仓库位置配置是否 ...
- hexo命令提示 hexo <command>
所有的hexo命令执行后都会提示 hexo <command> 解决方法: 通过hexo init blog命令初始化一个博客后,应该cd /blog 转到博客目录
- 50个SQL语句(MySQL版) 问题二
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- zabbix通过IPMI监控服务器传感器参数
一.需求:机房dell服务器和IBM服务器皆有主板管理接口iDRAC和iMM,上周已为服务器管理接口配置了ip地址,考虑通过zabbix实现对服务器传感器参数的实时监控.使用DELL-DL1300服务 ...
- Rocket - diplomacy - misaligned
https://mp.weixin.qq.com/s/poCJBcx45clXHm6Uuv8M6w 介绍AddressSet.misaligned的实现.之前介绍的比较概括,也有偏差.这里根据实际执行 ...